HI bensenq兄,
当内核在各个进程上下文下运行时,各进程不需要更新自己页目录/页表的内核部分的vmalloc区域的页目录/页表么?
内核vmalloc区域会产生pagefault,这个至少在2.6内核是如此的
ULK里对vmalloc的部分有过描述,由于调用vmalloc分配内存的进程(通常在init module的时候)跟使用该内存的进程未必是同一个,需要init_mm来中转一下。
另外,vmalloc分配的时候,页面是已经分配好的,只是page table相关的条目只能在当前进程和init_mm的上下文修改。
如果在其它进程的上下文访问vmalloc的内存,首次应该会产生page fault,只是这次fault之后,不需要分配页面(不允许睡眠的根本原因?),只需要根据init_mm修正一下当前进程的页表即可。
印象中是这么个过程,没有实际check过,如果有错误,勿怪。 本帖最后由 wp22_justdo 于 2016-02-23 23:12 编辑
11111111111111111111111111111111
页:
1
[2]