Re: [patch] sched: fix bad missed wakeups in the i386, x86_64, ia64, ACPI and APM idle code

From: Ingo Molnar
Date: Thu Dec 21 2006 - 08:04:17 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> CPU idle wakeup very much depends on ordered memory ops, the clearing
> of the TS_POLLING flag must always be done before we test
> need_resched() and hit the idle instruction(s). [Symmetrically, the
> wakeup code needs to set NEED_RESCHED before it tests the TS_POLLING
> flag, so memory ordering is paramount.]

Btw., this means that an smp_rmb() ought to be enough too. (I sent such
a test-patch to Fernando.) Also, i'd like the change to smp_rmb() be
done separately from the fix so that we have the most-conservative
variant in and thus it becomes bisectable. I'd like to avoid another few
months of latency for fixing yet another bug in this area...

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/