Re: Opaque: coherence partial order.
Alex Otenko via Concurrency-interest <[email protected]> Mon, 16 Aug 2021 08:04:49 +0100
| Newsgroups | gmane.comp.java.jsr.166-concurrency |
|---|---|
| Message-ID | <CANkgWKhArEEdTATiTAmdGHmE-vEA8yBFqvtBL+dQxHvZ1qqQWA@mail.gmail.com> |
--===============3217331654296484994== Content-Type: multipart/alternative; boundary="000000000000d09e8405c9a7d13a" --000000000000d09e8405c9a7d13a Content-Type: text/plain; charset="UTF-8" How can you even define "the most recent write" on a partial order? Alex On Mon, 16 Aug 2021, 06:41 Peter Veentjer via Concurrency-interest, < [email protected]> wrote: > Hi, > > One of the many definitions of coherence is the following: > 1) a total order of all loads/stores per address. > 2) a load needs to see the most recent store before it in the coherence > order. > 3) the coherence order should be compatible with the (preserved) program > order of each thread. > > There are important relaxations: > > 1) The actual order of loads and stores isn't relevant, it is all about > keeping up appearances. So in theory the above requirements can be > violated, as long as nobody can prove it happened. This goes for many other > memory models like sequential consistency or TSO. > > 2) Coherence order doesn't imply any real time guarantees, reads and > writes can be skewed similar as with sequential consistency. So a read > doesn't need to see the most recent write before it in physical clock > terms; it just needs to return the most recent write before it in the > coherence order. > > What i understand from the information about opaque: > http://gee.cs.oswego.edu/dl/html/j9mm.html > is that opaque doesn't provide a total order on a single address. So its > usage of coherence is slightly different from the general notion of > coherence. > > Given the fact that coherence to some extent is quite relaxed, what is the > reason that it wasn't specified in terms of a total order? Is it possible, > in theory, to observe a violation of the total order per address when > opaque is used? > _______________________________________________ > Concurrency-interest mailing list > [email protected] > http://cs.oswego.edu/mailman/listinfo/concurrency-interest > --000000000000d09e8405c9a7d13a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto">How can you even define "the most recent write"= on a partial order?<div dir=3D"auto"><br></div><div dir=3D"auto">Alex</div= ></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr"= >On Mon, 16 Aug 2021, 06:41 Peter Veentjer via Concurrency-interest, <<a= href=3D"mailto:[email protected]">concurrency-interest@cs= .oswego.edu</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style= =3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir= =3D"ltr"><div>Hi,</div><div><br></div><div>One of the many definitions of c= oherence is the following:</div><div>1) a total order of all loads/stores p= er address.<br></div><div>2) a load needs to see the most recent store befo= re it in the coherence order.</div><div>3) the coherence order should be co= mpatible with the (preserved) program order of each thread.</div><div><br><= /div><div>There are important relaxations:<br></div><div><br></div><div>1) = The actual order of loads and stores isn't relevant, it is all about ke= eping up appearances. So in theory the above requirements can be violated, = as long as nobody can prove it happened. This goes for many other memory mo= dels like sequential consistency or TSO. <br></div><div><br></div><div>2) C= oherence order doesn't imply any real time guarantees, reads and writes= can be skewed similar as with sequential consistency. So a read doesn'= t need to see the most recent write before it in physical clock terms; it j= ust needs to return the most recent write before it in the coherence order.= <br></div><div><br></div><div>What i understand from the=C2=A0 information = about opaque:<br></div><div><a href=3D"http://gee.cs.oswego.edu/dl/html/j9m= m.html" target=3D"_blank" rel=3D"noreferrer">http://gee.cs.oswego.edu/dl/ht= ml/j9mm.html</a></div><div>is that opaque doesn't provide a total order= on a single address. So its usage of coherence is slightly different from = the general notion of coherence.<br></div><div><br></div><div>Given the fac= t that coherence to some extent is quite relaxed, what is the reason that i= t wasn't specified in terms of a total order? Is it possible, in theory= , to observe a violation of the total order per address when opaque is used= ?<br></div></div> _______________________________________________<br> Concurrency-interest mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank" rel= =3D"noreferrer">[email protected]</a><br> <a href=3D"http://cs.oswego.edu/mailman/listinfo/concurrency-interest" rel= =3D"noreferrer noreferrer" target=3D"_blank">http://cs.oswego.edu/mailman/l= istinfo/concurrency-interest</a><br> </blockquote></div> --000000000000d09e8405c9a7d13a-- --===============3217331654296484994== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Concurrency-interest mailing list [email protected] http://cs.oswego.edu/mailman/listinfo/concurrency-interest --===============3217331654296484994==--