Chinaunix

标题: 内核线程有独立的mm页表和 cr3么 [打印本页]

作者: mordorwww    时间: 2016-07-13 09:12
标题: 内核线程有独立的mm页表和 cr3么
内核线程有独立的mm cr3么
switch时要切换CR3
内核线程调用do_exit
似乎应该有
作者: captivated    时间: 2016-07-14 13:23
是,必须有,其实内核的观点来说只有 task, 每个可以调度的实体都是一个 task_struct 的实例。
作者: mordorwww    时间: 2016-07-14 15:41
captivated 发表于 2016-07-14 13:23
是,必须有,其实内核的观点来说只有 task, 每个可以调度的实体都是一个 task_struct 的实例。


主要是因为内核线程没有用户内存区页表,只有内核内存区页表,而内核内存区页表所有线程进程都是一样的
所以这里可能不止一种选择?
作者: nswcfd    时间: 2016-07-15 09:44
发散一下,有没有可能kernel thread借用某个普通进程(例如当前被它preempt掉的进程)的页表?
当然它需要独立的kernel stack。
作者: zhanglong71    时间: 2016-07-18 13:31
nswcfd 发表于 2016-07-15 09:44
发散一下,有没有可能kernel thread借用某个普通进程(例如当前被它preempt掉的进程)的页表?
当然它需要 ...


从已有的资料看,kernel thread就是借用某个普通进程的页表。似乎就是当前CPU上运行的前一个进程的页表
作者: nopatch    时间: 2016-08-13 21:45
回复 5# zhanglong71

对,LKD上有讲这个问题。
我翻翻书,撸撸代码,然后贴相关的代码上来。


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2