Chris Wilson wrote: > After spotting a stuck process, and having decided not to panic, give > the task a kick to see if that helps it to recover (e.g. to paper over a > missed wake up).
Yes, we are seeing hangs at io_schedule(), but doesn't optionally allowing io_schedule() be replaced with timeout version (e.g. dump_page() upon timeout if io_schedule() was called for e.g. wait_on_page_bit()) give us more clue? > > References: https://bugs.freedesktop.org/show_bug.cgi?id=104009 > References: https://bugs.freedesktop.org/show_bug.cgi?id=104682 > Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> > Cc: Ingo Molnar <mi...@kernel.org> > Cc: Tetsuo Handa <penguin-ker...@i-love.sakura.ne.jp> > Cc: Andrew Morton <a...@linux-foundation.org> > --- > kernel/hung_task.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/hung_task.c b/kernel/hung_task.c > index 751593ed7c0b..b32acb6bcc63 100644 > --- a/kernel/hung_task.c > +++ b/kernel/hung_task.c > @@ -132,6 +132,8 @@ static void check_hung_task(struct task_struct *t, > unsigned long timeout) > trigger_all_cpu_backtrace(); > panic("hung_task: blocked tasks"); > } > + > + wake_up_process(t); > } > > /* > -- > 2.16.1