[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071210102157.GB31103@elte.hu>
Date: Mon, 10 Dec 2007 11:21:57 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Gautham R Shenoy <ego@...ibm.com>
Cc: Jiri Slaby <jirislaby@...il.com>,
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>,
Dipankar Sarma <dipankar@...ibm.com>
Subject: Re: broken suspend (sched related) [Was: 2.6.24-rc4-mm1]
* Gautham R Shenoy <ego@...ibm.com> wrote:
> > i'm wondering, what's the proper CPU-hotplug safe sequence here
> > then? I'm picking a CPU number from cpu_online_map, and that CPU
> > could go away while i'm still using it, right? What's saving us
> > here?
>
> In this particular case, we are trying to see if any task on a
> particular cpu has not been scheduled for a really long time. If we do
> this check on a cpu which has gone offline, then a) If the tasks have
> not been migrated on to another cpu yet, we will still perform that
> check and yell if something has been holding any task for a
> sufficiently long time. b) If the tasks have been migrated off, then
> we have nothing to check.
say we've got 100 CPUs, so we've got 100 watchdog tasks running - one
for each CPU. Checking for hung tasks is a global operation not a
per-CPU operation (we iterate over the global tasklist), hence only one
CPU should really be calling this function. That online-cpus logic
achieves this by picking a single CPU. Perhaps it would be better to
keep a hung_task_checker_cpu variable that is driven from a
CPU-hotplug-down notifier? That way if a CPU is brought down we can
update hung_task_checker_cpu to another, still-online CPU. (this would
also be faster, because event-driven)
Ingo
--
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