Причины мягкой блокировки?
Когда мы включаем CONFIG_DETECT_SOFTLOCKUP
чтобы обнаружить мягкие блокировки, он создает новую задачу под названием khungtaskd
который будет запускаться каждые 1 с. Если khungtaskd
не может быть запланировано на 'n' секунд, тогда ядро объявит мягкую блокировку.
Мой вопрос: каковы причины, которые мешают khungtaskd
от бега? Один, который я нашел, - это попытка получить уже приобретенный спин-блокировку в контексте прерывания. Каковы другие причины, которые приведут к мягкой блокировке?
2 ответа
Слишком много прерываний (и компьютер слишком медленный)? Проверьте /proc/interrupts
и посмотреть.
Некоторые задачи в реальном времени запущены?
Прерывания почти всегда имеют более высокий приоритет, чем другие задачи.
Например, в однопроцессорных (не SMP) системах с преимущественным вытеснением любой бесконечный цикл в потоке ядра вызовет мягкую блокировку.