Re: [PATCH v2 2/2] tools/memory-model: Make ppo a subrelation of po

From: Andrea Parri
Date: Sat Jan 28 2023 - 17:33:57 EST


On Sat, Jan 28, 2023 at 11:14:17PM +0100, Andrea Parri wrote:
> > Evidently the plain-coherence check rules out x=1 at the
> > end, because when I relax that check, x=1 becomes a possible result.
> > Furthermore, the graphical output confirms that this execution has a
> > ww-incoh edge from Wx=2 to Wx=1. But there is no ww-vis edge from Wx=1
> > to Wx=2! How can this be possible? It seems like a bug in herd7.
>
> By default, herd7 performs some edges removal when generating the
> graphical outputs. The option -showraw can be useful to increase
> the "verbosity", for example,
>
> [with "exists (x=2)", output in /tmp/T.dot]

This was meant to be "exists (x=1)".

Andrea


> $ herd7 -conf linux-kernel.cfg T.litmus -show prop -o /tmp -skipchecks plain-coherence -doshow ww-vis -showraw ww-vis
>
>
> > Furthermore, the execution with x=2 at the end doesn't have either a
> > ww-vis or a ww-nonrace edge betwen Wx=1 and Wx=2. So why isn't there a
> > ww-race edge?
>
> And similarly
>
> [with "exists (x=2)"]
> $ herd7 -conf linux-kernel.cfg T.litmus -show prop -o /tmp -doshow ww-vis,ww-nonrace -showraw ww-vis,ww-nonrace
>
> Andrea