When we enable CONFIG_DETECT_SOFTLOCKUP
to detect soft lockups, it creates a new task called khungtaskd
which will run every 1s. If khungtaskd
fails to get scheduled for 'n' seconds, then Kernel will declare a soft lockup.
My question is what are the reasons that prevent khungtaskd
from running? One that I found is- trying to acquire an already acquired spinlock in interrupt context. What are the other reasons which will lead to soft lockup?
Too many interrupt (and computer too slow)? Check /proc/interrupts
and see.
Some realtime tasks running?
Interrupts almost always have higher priority than other tasks.
For instance, on preemption disabled, uniprocessor(non-SMP) systems, any endless loop in a kernel thread will cause a soft-lockup.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With