[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20170214201242.GA8576@andrea>
Date: Tue, 14 Feb 2017 21:12:42 +0100
From: Andrea Parri <parri.andrea@...il.com>
To: Michael Cree <mcree@...on.net.nz>
Cc: klausman@...warzvogel.de,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
stern@...land.harvard.edu, bob smith <sfmc68@...izon.net>,
rth@...ddle.net, ink@...assic.park.msu.ru, mattst88@...il.com,
j.alglave@....ac.uk, luc.maranget@...ia.fr, will.deacon@....com,
linux-alpha@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: Question about DEC Alpha memory ordering
On Wed, Feb 15, 2017 at 08:26:46AM +1300, Michael Cree wrote:
> On Tue, Feb 14, 2017 at 12:35:58PM +0100, Andrea Parri wrote:
> > On Mon, Feb 13, 2017 at 01:24:36PM -0800, Paul E. McKenney wrote:
> > > ------------------------------------------------------------------------
> > >
> > > C auto/C-LB-LRW+OB-Ov
> > > (*
> > > * Result: Maybe
> > > * P0-P1 rf OB-Ov: Never->Maybe: Note lack of C11 guarantee, control dependency
> > > * P1 Ov,LRW: Note lack of C11 guarantee, control dependency
> > > *)
> > > {
> > > }
> > >
> > > P0(int *u0, int *x1)
> > > {
> > > r1 = READ_ONCE(*u0);
> > > smp_mb();
> > > WRITE_ONCE(*x1, 1);
> > > }
> > >
> > >
> > > P1(int *u0, int *x1)
> > > {
> > > r1 = READ_ONCE(*x1);
> > > WRITE_ONCE(*u0, r1);
> > > }
> > >
> > > exists
> > > (0:r1=1 /\ 1:r1=1)
> > >
> >
> > The (automatically generated) module for this test is at
> >
> > http://retis.sssup.it/~a.parri/lkmm/C-LB-LRW+OB-Ov.tgz ;
> >
> > the test is run by cat-ing /sys/kernel/litmus/p_count: this will execute
> > the thread bodies for "runs * size" iterations; results can be sentisive
> > to the "stride" and "affinity increment" parameters (c.f., the Makefile);
> > statistics for each experiments are printed on stdout.
>
> This is the test run on a 3-cpu ES45 with the settings in the Makefile:
>
> Test auto/LB-LRW+OB-Ov Allowed
> Histogram (2 states)
> 5913093 :> 0:r1=0; 1:r1=0;
> 4086907 :> 0:r1=0; 1:r1=1;
> No
> Witnesses
> Positive: 0 Negative: 10000000
> Condition exists (0:r1=1 /\ 1:r1=1) is NOT validated
> Observation auto/LB-LRW+OB-Ov Never 0 10000000
> Time auto/LB-LRW+OB-Ov 9.570
> Hash=200258693ffc841829310726a4a0b7e3
>
> How do we interpret these results?
Hi Michael. The log shows (together w/ other info.) an histogram
[Total count] :> [Final state]
where "Total count" is the number of times an execution of the test program
led to the associated "Final state", here represented by the final values
of the registers 0:r1, 1:r1.
The log also shows statistics relative to the final state specified by the
program's "exists" clause, here (0:r1=1 /\ 1:r1=1): this state was never
observed (Positive: 0) over a total of 10000000 iterations/executions.
Thank you for running the test and for sharing these results.
Andrea
>
> Cheers
> Michael.
Powered by blists - more mailing lists