[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZeoFBkB1BeTdEQsn@andrea>
Date: Thu, 7 Mar 2024 19:18: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
> So I guess you're talking about the second, intuitive meaning. That's
> very simple to explain. Since every instruction executes at _some_
> time, and since we can safely assume that no two instructions execute at
> exactly the _same_ time, if F doesn't execute before E then E must
> execute before F. Or using your terms, (not F ->xb E) implies (E ->xb
> F). Would that answer the original question satisfactorily?
I'd disagree with these premises: certain instructions can and do execute
at the same time. FWIW, in the formal model, it is not that difficult to
provide examples of "(not F ->xb E) and (not E ->xb F)".
> 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.
Andrea
Powered by blists - more mailing lists