昨日、ラップトップを閉じると、すぐにスタンバイモードになりませんでした。ログによると、それは試みていましたが、タスクはフリーズを拒否しました:
Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):
これは、システムが実際に停止するまで数時間続きました。 syslog
は この質問 のようなメッセージでいっぱいでした。systemd
が何度も試行していたためです。
これはどうして起こりますか?スケジューラがそのアプリケーションのスケジューリングを停止できないのはなぜですか?そしてそれは効果的に凍結されていますか?複数のSTOP
コマンドがあり、そのうちの1つは適切に要求され、1つは強制的にフリーズされます。なぜsystemd
がこれを使用しなかったのか、またはなぜこれがここで機能しなかったのですか?
タスクのフリーズは詳細に文書化されています カーネルのドキュメントに 。
ユーザー空間プロセスは凍結を拒否できません。それらはフリーズしますが、カーネルとプロセス間のシグナリングはシグナル処理コードによって自動的に処理されます(フリーズは偽のシグナルを使用します)。
「タスクがフリーズを拒否しています」というメッセージが表示された場合は、カーネルスレッドがフリーズを拒否しています。ただし、カーネルが一時停止するまで数時間待つ必要はありません。ログメッセージのスタックトレースは、何が問題かを把握するのに役立ちます。