我想知道内核模块线程是否有办法切换其当前mm。内核线程通常在调度之前使用活动的最后一个mm。是否可以切换到内核线程中的特定mm?我正在寻找一个与windows中的KeStackAttachProcess等价的linux。Context_switch()和switch_mm()没有导出,所以我想知道我可以用什么来切换内核模块线程中的上下文。
发布于 2015-01-05 14:28:05
目前没有这样的功能可用于切换上下文。然而,同样的事情可以用不同的方式实现。我发现在内核中的特定进程上下文中做任何事情的最好方法是在进程上下文中睡眠(wait_*函数系列),唤醒线程并在这个上下文中做任何需要做的事情。当然,这意味着您必须让应用程序通过IOCTL或其他什么方式调用内核,并在线程上睡觉,并在需要做什么时唤醒它。这似乎是一个非常广泛使用和流行的机制。
发布于 2022-06-02 14:47:21
旧内核没有kthread_前缀"kthread_use_mm --使调用k线程在地址空间上操作"kthread_unuse_mm -反转kthread_use_mm()的效果“
https://stackoverflow.com/questions/24888548
复制相似问题