Как задачи могут «отказаться от замораживания» при приостановке?


17

Вчера при закрытии ноутбука не сразу переходил в режим ожидания. Согласно журналам, он пытался, но задание отказывалось зависать:

Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):

Это продолжалось в течение нескольких часов, пока система фактически не приостановилась. Он syslogбыл полон сообщений, как в этом вопросе , потому что systemdпытался снова и снова.

Как это может случиться? Почему планировщик не может просто остановить планирование этого приложения? а потом он эффективно заморожен? Я прочитал, что есть несколько STOPкоманд, одна из которых спрашивает красиво, а другая принудительно останавливается. Почему systemdне использовал это или почему это не работает здесь?

Ответы:


25

Замораживание задач подробно описано в документации ядра .

Процессы пользовательского пространства не могут отказать в замораживании; они действительно замораживаются, но передача сигналов между ядром и процессами автоматически выполняется кодом обработки сигналов (замораживание использует ложный сигнал).

Если вы видите «задачи, отказывающиеся замораживать» сообщения, это означает, что поток ядра отказывается замораживаться, обычно потому, что он делает что-то, что не может быть проверено. Однако необходимость подождать несколько часов, пока ядро ​​приостановится, не является нормой; трассировка стека в сообщениях журнала поможет понять, что происходит не так.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.