我需要从内核线程调用get_user_pages_fast()
。但get_user_pages_fast()
内部使用current->mm
,对于内核线程,其设置为NULL
。有什么办法可以解决这个问题吗?正在讨论的内核线程正在代表另一个进程工作,如x
,将x->mm
设置为current->mm
并调用get_user_pages_fast()
可以吗?get_user_pages_fast()来自内核线程
[编辑1]:我验证了这一点,它似乎工作。我仍然担心它是否会在某些情况下破裂。任何见解都值得欢迎。谢谢。
你将需要说你正在尝试使用什么语言 – thecoshman 2013-04-23 07:41:11
这是linux内核,我使用C.为防万一我没有正确的框架,它不是一个编程问题(如分配工作),但在Linux内核和内核线程的环境中是否合适。 – spa 2013-04-23 08:15:07
将'x-> mm'指定为'current-> mm'告诉内核您的线程具有与进程'x'相同的虚拟内存空间。这真的是你想要的吗? (它会打扰我有一个内核线程,应该留在一个纯粹的内核上下文有一个虚拟内存空间?!) – Rerito 2013-04-23 12:03:33