[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZeoQvj3l6moF9KdQ@andrea>
Date: Thu, 7 Mar 2024 20:08:46 +0100
From: Andrea Parri <parri.andrea@...il.com>
To: Alan Stern <stern@...land.harvard.edu>
Cc: Kenneth-Lee-2012@...mail.com, linux-kernel@...r.kernel.org,
paulmck@...nel.org
Subject: Re: Question about PB rule of LKMM
> > 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
Powered by blists - more mailing lists