Re: [feature] automatically detect hung TASK_UNINTERRUPTIBLE tasks

Rafael J. Wysocki
2007-12-03T22:28:58Z

On Monday, 3 of December 2007, Ingo Molnar wrote:
>
> * Rafael J. Wysocki <rjw@sisk.pl> wrote:
>
> > > This feature will save one full reporter-developer round-trip during
> > > investigation of a significant number of bug reports.
> > >
> > > It might be more practical if it were to dump the traces for _all_
> > > D-state processes when it fires - basically an auto-triggered
> > > sysrq-W.
> >
> > Er, it won't play well if that happen when tasks are frozen for
> > suspend.
>
> right now any suspend attempt times out after 20 seconds:
>
> $ grep TIMEOUT kernel/power/process.c
> #define TIMEOUT (20 * HZ)
> end_time = jiffies + TIMEOUT;

This is the timeout for freezing tasks, but if the freezing succeeds, they
can stay in TASK_UNINTERRUPTIBLE for quite some more time, especially during
a hibernation (the tasks stay frozen until we power off the system after saving
the image).

> which should be well before the 120 seconds timeout that the detector
> uses. But indeed you are right in that the refrigerator() works via
> TASK_UNINTERRUPTIBLE too. I've updated the patch to exclude PF_FROZEN -
> attached below. That should solve this particular issue, even if the
> timeout increased to above 20 secs, right?

Sure.

Thanks,
Rafael