C 通过终止kthread恢复unix设备驱动程序的最佳选择

C 通过终止kthread恢复unix设备驱动程序的最佳选择,c,linux,multithreading,linux-kernel,linux-device-driver,C,Linux,Multithreading,Linux Kernel,Linux Device Driver,我没有看到任何针对Linux的kthread_销毁,只针对NetBSD 哪种方法是杀死一个kthread然后重新启动它的最佳方法?linux不支持杀死一个内核线程。您要求它停止,然后等待它停止(实际上并没有为有缺陷的内核模块提供支持)。这样,它就不会突然消失,使系统资源(锁、分配的内存等)处于不确定状态 通常使用kthread_create创建线程,使用kthread_stop请求线程停止。同时,线程位于一个循环中,执行如下操作: while (!kthread_should_stop()) {

我没有看到任何针对Linux的kthread_销毁,只针对NetBSD


哪种方法是杀死一个kthread然后重新启动它的最佳方法?

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

通常使用kthread_create创建线程,使用kthread_stop请求线程停止。同时,线程位于一个循环中,执行如下操作:

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

重新启动操作系统。您的内核处于未定义状态。扔掉它,换一个新的。