Linux kernel 关闭或重新启动时的Linux用户空间调度
我正在检查linux内核源代码Linux kernel 关闭或重新启动时的Linux用户空间调度,linux-kernel,Linux Kernel,我正在检查linux内核源代码linux/kernel/reboot.c。 在重新启动调用时,调用上面定义的函数。 我的问题与重新启动系统有关。由于我们正在驱动程序中安装重新启动通知程序,因此我们希望确保在重新启动过程中不会调用我们的用户空间进程 如果调用重新启动,用户空间进程是否仍在运行 是否可以保证,如果调用了reboot notifier,用户空间进程仍然可以运行或调度 在SMP上是否也保证了这种行为,即如果调用重新启动,用户空间不会执行 这个电话能被抢先吗 如果驱动程序注册到重新启动通知
linux/kernel/reboot.c
。
在重新启动调用时,调用上面定义的函数。
我的问题与重新启动系统有关。由于我们正在驱动程序中安装重新启动通知程序,因此我们希望确保在重新启动过程中不会调用我们的用户空间进程
设备\u shutdown
上添加一个钩子kernel\u restart\u prepare
作为reboot
系统调用的一部分被调用,其描述如下:
重新启动不同步:在调用此命令之前,请自己执行此操作
因此,没有人保证用户空间进程将在那一刻完成,也不会阻止新的用户空间进程启动
该函数在标准内核环境中运行,因此可以像往常一样对其进行抢占
根据装置的关闭,它没有提供挂钩机制。它只为每个驱动程序调用shutdown
方法
68 void kernel_restart_prepare(char *cmd)
69 {
70 blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);
71 system_state = SYSTEM_RESTART;
72 usermodehelper_disable();
73 device_shutdown();
74 }