5

当我们启用CONFIG_DETECT_SOFTLOCKUP检测软锁定时,它会创建一个名为的新任务,该任务khungtaskd将每 1 秒运行一次。如果khungtaskd未能在 'n' 秒内被调度,则内核将声明软锁定。

我的问题是阻止khungtaskd运行的原因是什么?我发现的一个是 - 试图在中断上下文中获取一个已经获得的自旋锁。导致软锁定的其他原因是什么?

4

2 回答 2

1

中断太多(计算机太慢)?检查/proc/interrupts并查看。

一些实时任务正在运行?

中断几乎总是比其他任务具有更高的优先级。

于 2011-08-30T07:09:45.520 回答
1

例如,在禁用抢占的单处理器(非 SMP)系统上,内核线程中的任何无限循环都会导致软锁定。

于 2012-05-17T16:06:09.533 回答