【发布时间】:2013-01-09 16:44:42
【问题描述】:
Linux 内核 spin_lock 实现通过调用 preempt_disable() 来禁用抢占。在我的内核配置中未设置 CONFIG_PREEMPT。由于在 spin_lock 中断处理程序期间未禁用中断,因此可以调用 schedule()。任何人都可以指出调度程序没有调度另一个进程的代码,因为它已经获得了一个 spin_lock。
【问题讨论】:
标签: linux-kernel kernel
Linux 内核 spin_lock 实现通过调用 preempt_disable() 来禁用抢占。在我的内核配置中未设置 CONFIG_PREEMPT。由于在 spin_lock 中断处理程序期间未禁用中断,因此可以调用 schedule()。任何人都可以指出调度程序没有调度另一个进程的代码,因为它已经获得了一个 spin_lock。
【问题讨论】:
标签: linux-kernel kernel
中断处理程序不允许调用schedule()。
【讨论】: