如何在内核模块线程中进行上下文切换?

时间:2014-07-22 13:20:39

标签: switch-statement linux-device-driver

我想知道内核模块线程是否有办法切换其当前mm。内核线程通常使用在调度之前处于活动状态的最后一个mm。是否可以切换到内核线程中的特定mm? 我在windows中寻找一个等同于KeStackAttachProcess的linux。 Context_switch()switch_mm()未导出,所以我想知道在内核模块线程中切换上下文可以用什么。

1 个答案:

答案 0 :(得分:0)

目前没有这样的功能可用于切换上下文。然而,可以以不同的方式实现相同的目的。我发现在内核中的特定进程的上下文中做任何事情的最好方法是睡眠进程上下文(wait_ *系列函数)并唤醒该线程并执行在该上下文中需要完成的任何操作。这意味着您必须通过IOCTL或其他东西将应用程序调用到内核中并在该线程上休眠并在需要执行某些操作时将其唤醒。这似乎是一种非常广泛使用和流行的机制。