There's the hung_task_panic sysctl, but that's a bit an extreme measure. As a fallback taint at least the machine.
Our CI uses this to decide when a reboot is necessary, plus to figure out whether the kernel is still happy. v2: Works much better when I put the else { add_taint() } at the right place. Signed-off-by: Daniel Vetter <daniel.vet...@intel.com> Cc: Andrew Morton <a...@linux-foundation.org> Cc: Tetsuo Handa <penguin-ker...@i-love.sakura.ne.jp> Cc: Dmitry Vyukov <dvyu...@google.com> Cc: "Paul E. McKenney" <paul...@linux.ibm.com> Cc: Valdis Kletnieks <valdis.kletni...@vt.edu> Cc: Daniel Vetter <daniel.vet...@ffwll.ch> Cc: Vitaly Kuznetsov <vkuzn...@redhat.com> Cc: "Liu, Chuansheng" <chuansheng....@intel.com> --- kernel/hung_task.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/hung_task.c b/kernel/hung_task.c index f108a95882c6..d90d98f53ccb 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -117,6 +117,8 @@ static void check_hung_task(struct task_struct *t, unsigned long timeout) console_verbose(); hung_task_show_lock = true; hung_task_call_panic = true; + } else { + add_taint(TAINT_WARN, LOCKDEP_STILL_OK); } /* -- 2.20.1