<div dir="ltr">Andrew,<div><br></div><div>thank you for the reference, this answers the dilemma in full. I didn't know this guarantee existed on x86.</div><div><br></div><div>---</div><div>Marko</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 16, 2015 at 7:44 PM, Andrew Haley <span dir="ltr"><<a href="mailto:aph@redhat.com" target="_blank">aph@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 03/16/2015 05:00 PM, Marko Topolnik wrote:<br>
<br>
> Given that, since Nehalem, cores communicate point-to-point over QPI<br>
> and don't lock the global front-side bus, the CPU doesn't naturally<br>
> offer a total ordering of all lock operations.<br>
<br>
</span>Intel do actually guarantee<br>
<br>
    Locked instructions have a total order.<br>
<br>
so this is a hardware problem, not a software one.  How exactly the<br>
hardware people do this on a large network of processors is some of<br>
the most Secret Sauce, but I can imagine some kind of combining<br>
network in hardware.<br>
<br>
Andrew.<br>
<br>
[1]  Intel® 64 and IA-32 Architectures Software Developer’s Manual<br>
Volume 3 (3A, 3B & 3C): System Programming Guide 8.2.2, Memory<br>
Ordering in P6 and More Recent Processor Families<br>
</blockquote></div><br></div>