lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 7 Dec 2007 16:11:50 +0100 From: Ingo Molnar <mingo@...e.hu> To: Jiri Slaby <jirislaby@...il.com> Cc: Andrew Morton <akpm@...ux-foundation.org>, linux-kernel@...r.kernel.org, "Rafael J. Wysocki" <rjw@...k.pl>, Arjan van de Ven <arjan@...ux.intel.com>, Thomas Gleixner <tglx@...utronix.de>, Linux-pm mailing list <linux-pm@...ts.linux-foundation.org> Subject: Re: broken suspend (sched related) [Was: 2.6.24-rc4-mm1] * Jiri Slaby <jirislaby@...il.com> wrote: > On 12/05/2007 06:17 AM, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc4/2.6.24-rc4-mm1/ > > > git-sched.patch > > breaks suspend here since -rc3-mm2. More precisely, this one: > softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks > > 2.6.24-rc4-mm1 minus this one works just fine. Otherwise disks stop, graphics > stops and then it hangs not powering down. > > Core 2 Duo, SMP kernel, voluntary preempt, 250 HZ, SLUB, 64 bit. > > Ideas? thanks for tracking it down. Does the patch below help? Ingo --- kernel/softlockup.c | 8 ++++++-- 1 file changed, 6 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; @@ -214,7 +218,7 @@ static int watchdog(void *__bind_cpu) */ while (!kthread_should_stop()) { touch_softlockup_watchdog(); - msleep_interruptible(10000); + schedule(); /* * Only do the hung-tasks check on one CPU: -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists