Linux kernel 自旋锁定期间的抢占

Linux kernel 自旋锁定期间的抢占,linux-kernel,kernel,Linux Kernel,Kernel,linux内核自旋锁实现通过调用preempt\u disable()禁用抢占。在我的内核配置中,没有设置配置抢占。由于在自旋锁定期间中断没有被禁用,中断处理程序可以调用schedule()。任何人都可以指出调度程序没有调度另一个进程的代码,因为它已经获得了自旋锁。中断处理程序不允许调用schedule()因为中断处理程序中不允许调度(),linux内核中如何实现循环调度类型。i、 e.谁经常打电话给调度程序。在条目_32.S中,它仅在定义了CONFIG_PREEMPT时调用调度器。@user1

linux内核自旋锁实现通过调用preempt\u disable()禁用抢占。在我的内核配置中,没有设置配置抢占。由于在自旋锁定期间中断没有被禁用,中断处理程序可以调用schedule()。任何人都可以指出调度程序没有调度另一个进程的代码,因为它已经获得了自旋锁。

中断处理程序不允许调用
schedule()

因为中断处理程序中不允许调度(),linux内核中如何实现循环调度类型。i、 e.谁经常打电话给调度程序。在条目_32.S中,它仅在定义了CONFIG_PREEMPT时调用调度器。@user1428099:在返回到userspace时可以调用调度器,包括从userspace输入内核以服务中断时。