Re: [PATCH] tools/memory-model: Make ppo a subrelation of po
From: Jonas Oberhauser
Date: Wed Jan 18 2023 - 07:52:21 EST
On 1/18/2023 12:45 AM, Boqun Feng wrote:
On Tue, Jan 17, 2023 at 08:31:59PM +0100, Jonas Oberhauser wrote:
---
.../Documentation/explanation.txt | 101 +++++++++++-------
tools/memory-model/linux-kernel.cat | 20 ++--
I've reviewed the cat change part, and it looks good to me.
It's not the cat part that worries me! I'm worried that I made the
explanation inconsistent somewhere, or that it's not very
understandable. If you have time, please take a look at that as well.
One more thing, do we want something in the cat file to describe our
"internal axioms" as follow?
(* Model internal invariants *)
(* ppo is the subset of po *)
flag ~empty (ppo \ po) as INTERNAL-ERROR-PPO
Maybe it's helpful for people working on other tools to understand LKMM
cat file?
I've thought that there should be a way to continuously test/prove
properties of LKMM so that future changes to LKMM can't silently
invalidate these properites (like what happened when this fence was
added to LKMM).
I'm not sure yet what's the best way to do this. I suppose a simple
first step could be to have an additional cat file lkmm-properties.cat
that flags all violations of the properties in the litmus tests, but I'm
not sure how much that really helps: I think many violations are not
present in any of the existing litmus tests. And some properties are
hard to state as a cat flag.
best wishes and thanks for reviewing,
jonas