Thread (13 messages) 13 messages, 7 authors, 2017-02-14

Re: Question about DEC Alpha memory ordering

From: Michael Cree <hidden>
Date: 2017-02-14 19:28:08
Also in: lkml

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:
quoted
------------------------------------------------------------------------

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?

Cheers
Michael.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help