通过杀死kthread来恢复unix设备驱动程序的最佳选择

时间:2014-06-03 09:15:34

标签: c linux multithreading linux-kernel linux-device-driver

我没有看到任何针对Linux的kthread_destroy,仅针对NetBSD。

哪种方法可以杀死kthread,然后重新开始呢?

1 个答案:

答案 0 :(得分:0)

linux不支持查杀内核线程。你要求它停止,然后等待它这样做(实际上没有提供有缺陷的内核模块)。这样,它就不会突然消失,从而使系统资源 - 锁定,分配内存等 - 处于不确定状态。

通常使用kthread_create创建线程,使用kthread_stop来请求线程停止。与此同时,线程在一个循环中做这样的事情:

while (!kthread_should_stop()) {
   /* ... do stuff */
}
return 0;