Messages in this thread | | | Date | Thu, 21 Dec 2006 14:00:12 +0100 | From | Ingo Molnar <> | Subject | Re: [patch] sched: fix bad missed wakeups in the i386, x86_64, ia64, ACPI and APM idle code |
| |
* Ingo Molnar <mingo@elte.hu> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |