草庐IT

linux - 如何区分内核中的软锁定和用户空间中的软锁定?

我有以下锁定。这是否表明slic_testpid5207是违规者,或者它只是表明因为内核中的当前宏仍然指向使系统调用我的驱动程序的用户空间进程?此外-irqeventstamp0...irqeventstamp究竟代表什么?不可能是自启动以来的中断次数...88798秒后肯定超过0...系统是禁用了CONFIG_SMP的单处理器系统。[88798.449628]BUG:softlockup-CPU#0stuckfor61s![slic_test:5207][88798.449628]Moduleslinkedin:slic_xxxxleds_xxxxvortex86_spidm_mir

linux - 软锁的原因?

当我们启用CONFIG_DETECT_SOFTLOCKUP来检测软锁定时,它会创建一个名为khungtaskd的新任务,它将每1秒运行一次。如果khungtaskd在'n'秒内未能获得调度,则内核将声明软锁定。我的问题是阻止khungtaskd运行的原因是什么?我发现的一个是-试图在中断上下文中获取一个已经获取的自旋锁。还有哪些原因会导致软锁死? 最佳答案 太多中断(和计算机太慢)?检查/proc/interrupts看看。一些实时任务正在运行?中断几乎总是比其他任务具有更高的优先级。