【发布时间】:2015-11-24 04:22:20
【问题描述】:
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 }
我正在检查 linux 内核源代码linux/kernel/reboot.c。
在重新启动调用时,将调用上面定义的函数。
我的问题与重新启动系统有关。由于我们在驱动程序中安装了重启通知程序,因此我们希望确保在重启过程中不会调用我们的用户空间进程。
- 如果调用了重新启动,用户空间进程是否仍在运行?
- 是否保证如果调用了重启通知程序,用户空间进程仍然可以运行或调度?
- SMP 上的行为是否也得到保证,如果调用重新启动,用户空间不会执行?
- 能否抢占此调用?
- 如果驱动程序注册到reboot-notifier list 是否满足要求,用户空间应用程序不在此通知程序处执行?
- 是否可以在驱动程序中为
device_shutdown添加挂钩?
【问题讨论】:
标签: linux-kernel