当我们启用CONFIG_DETECT_SOFTLOCKUP
来检测软锁定时,它会创建一个名为khungtaskd
的新任务,该任务将每1秒运行一次。如果khungtaskd
未能在'n'秒内安排,则内核将声明软锁定。
我的问题是阻止khungtaskd
运行的原因是什么?我发现的一个 - 试图在中断环境中获取已经获得的自旋锁。导致软锁定的其他原因是什么?
答案 0 :(得分:1)
中断太多(计算机太慢)?检查/proc/interrupts
并查看。
某些实时任务正在运行?
中断几乎总是比其他任务具有更高的优先级。
答案 1 :(得分:1)
例如,在抢占禁用的单处理器(非SMP)系统上,内核线程中的任何无限循环都会导致软锁定。