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 &quot;the most recent write&quot;=
 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, &lt;<a=
 href=3D"mailto:[email protected]">concurrency-interest@cs=
.oswego.edu</a>&gt; 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&#39;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&#39;t imply any real time guarantees, reads and writes=
 can be skewed similar as with sequential consistency. So a read doesn&#39;=
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&#39;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&#39;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==--