Messages in this thread | | | From | Oliver Neukum <> | Subject | Re: Uses for memory barriers | Date | Sat, 9 Sep 2006 00:49:19 +0200 |
| |
Am Samstag, 9. September 2006 00:25 schrieb Alan Stern: > On Fri, 8 Sep 2006, Oliver Neukum wrote: > > > > Again you have misunderstood. The original code was _not_ incorrect. I > > > was asking: Given the code as stated, would the assertion ever fail? > > > > I claim the right to call code that fails its own assertions incorrect. :-) > > Touche! > > > > The code _was_ correct for my purposes, namely, to illustrate a technical > > > point about the behavior of memory barriers. > > > > I would say that the code may fail the assertion purely based > > on the formal definition of a memory barrier. And do so in a subtle > > and inobvious way. > > But what _is_ the formal definition of a memory barrier? I've never seen > one that was complete and correct.
I' d say "mb();" is "rmb();wmb();"
and they work so that:
CPU 0
a = TRUE; wmb(); b = TRUE;
CPU 1
if (b) { rmb(); assert(a); }
is correct. Possibly that is not a complete definition though.
Regards Oliver - 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/
| |