Re: spin_unlock optimization(i386)

Linus Torvalds (torvalds@transmeta.com)
Thu, 25 Nov 1999 16:22:20 -0800 (PST)


On Thu, 25 Nov 1999, Ingo Molnar wrote:
>
> hm. At least my reading of Erich's emails is that no kind of read can ever
> see out of order (noncausal) memory contents.

I agree. That is what Erich says.

However, Erich must be wrong. We _know_ intel re-orders memory accesses.
Manfred has a program to test it, and we've seen it ourself in Linux, with
all the races on "current->state = TASK_SLEEPING" and "if (wakeuptest)"
that go away when you have a serializing instruction in between the memory
operations.

Thus we can disprove the notion that IA-32 really acts as if it is
completely strongly ordered and never breaks causality. I didn't run
Manfreds test program, but I believe his results.

Manfreds (and oxymorons) explanation that reads only move upwards does fit
all the facts.

Linus

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