标签: linux-kernel kernel
linux内核spin_lock实现通过调用preempt_disable()来禁用抢占。在我的内核配置中,未设置CONFIG_PREEMPT。由于在spin_lock中断处理程序中没有禁用中断,因此中断处理程序可以调用schedule()。任何人都可以指出调度程序没有安排另一个进程的代码,因为它已经获得了一个spin_lock。
答案 0 :(得分:3)
中断处理程序不允许调用schedule()。
schedule()