Messages in this thread | | | Date | Sat, 08 Dec 2007 09:10:48 +0100 | From | Jiri Slaby <> | Subject | Re: broken suspend (sched related) [Was: 2.6.24-rc4-mm1] |
| |
On 12/07/2007 06:51 PM, Ingo Molnar wrote: > * Ingo Molnar <mingo@elte.hu> wrote: > >> thanks for tracking it down. Does the patch below help? > > oops, that should be the patch below. Otherwise the watchdog kernel > threads will just loop around. > > Ingo > > --- > kernel/softlockup.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > Index: linux/kernel/softlockup.c > =================================================================== > --- linux.orig/kernel/softlockup.c > +++ linux/kernel/softlockup.c > @@ -101,7 +101,11 @@ void softlockup_tick(void) > > now = get_timestamp(this_cpu); > > - /* Warn about unreasonable delays: */ > + /* Wake up the high-prio watchdog task every second: */ > + if (now > (touch_timestamp + 1)) > + wake_up_process(per_cpu(watchdog_task, this_cpu)); > + > + /* Warn about unreasonable 10+ seconds delays: */ > if (now <= (touch_timestamp + softlockup_thresh)) > return; > > @@ -213,8 +217,9 @@ static int watchdog(void *__bind_cpu) > * debug-printout triggers in softlockup_tick(). > */ > while (!kthread_should_stop()) { > + set_current_state(TASK_INTERRUPTIBLE); > touch_softlockup_watchdog(); > - msleep_interruptible(10000); > + schedule(); > > /* > * Only do the hung-tasks check on one CPU:
Unfortunately no change here.
| |