Re: Question about PB rule of LKMM

From: Andrea Parri
Date: Thu Mar 07 2024 - 14:10:58 EST


> > I'd disagree with these premises: certain instructions can and do execute
> > at the same time.
>
> Can you give an example?

I think I'm starting to see where this is going..., but to address the
question: really any example where the LKMM doesn't know better, say

C test

{}

P0(int *x)
{
*x = 1;
}

P1(int *x)
{
*x = 2;
}


> > FWIW, in the formal model, it is not that difficult to
> > provide examples of "(not F ->xb E) and (not E ->xb F)".
>
> That's because the xb relation in the formal model does not fully
> capture our intuitive notion of "executes at the same time" in the
> informal operational model.
>
> Also, it's important to distinguish between:
>
> (1) Two instructions that are forced (say by a dependency) or known
> (say by an rfe link) to execute in a particular order; versus
>
> (2) Two instructions that may execute in either order but do execute
> in some particular order during a given run of the program.
>
> The formal xb relation corresponds more to (1), whereas the informal
> notion corresponds more to (2).

This appears to be the key observation. For if, in the operational model,
(not F ->xb E) implies (E ->xb F) then I'll apologize for the noise. :-)


> > > The new text says the same thing as the original, just in a more
> > > condensed way. It skips the detailed explanation of why E must execute
> > > before W propagates to E's CPU, merely saying that it is because "W is
> > > coherence-later than E". I'm not sure this is an improvement; the
> > > reader might want to know exactly how this reasoning goes.
> >
> > The current text relies on an argument by contradiction. A contradiction
> > is reached by "forcing" (F ->xb E), hence all it can be concluded is that
> > (not F ->xb E). Again, AFAICS, this doesn't match the claim in the text.
>
> That's why I suggested adding an extra sentence to the paragraph (which
> you did not quote in your reply). That sentence gave a direct argument.

Well, I read that sentence but stopped at "These contradictions show that"
for the reason I detailed above.

Andrea