linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Peter Sewell <Peter.Sewell@cl.cam.ac.uk>
Cc: "mark.batty@cl.cam.ac.uk" <Mark.Batty@cl.cam.ac.uk>,
	peterz@infradead.org, Torvald Riegel <triegel@redhat.com>,
	torvalds@linux-foundation.org, Will Deacon <will.deacon@arm.com>,
	Ramana.Radhakrishnan@arm.com, dhowells@redhat.com,
	linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org, mingo@kernel.org, gcc@gcc.gnu.org
Subject: Re: [RFC][PATCH 0/5] arch: atomic rework
Date: Tue, 18 Feb 2014 08:47:23 -0800	[thread overview]
Message-ID: <20140218164723.GM4250@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAHWkzRR1YozAuTqSTdyTncyNju6ZqUwYi0h988FBgFLDJAtaEg@mail.gmail.com>

On Tue, Feb 18, 2014 at 03:33:35PM +0000, Peter Sewell wrote:
> Hi Paul,
> 
> On 18 February 2014 14:56, Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > On Tue, Feb 18, 2014 at 12:12:06PM +0000, Peter Sewell wrote:
> >> Several of you have said that the standard and compiler should not
> >> permit speculative writes of atomics, or (effectively) that the
> >> compiler should preserve dependencies.  In simple examples it's easy
> >> to see what that means, but in general it's not so clear what the
> >> language should guarantee, because dependencies may go via non-atomic
> >> code in other compilation units, and we have to consider the extent to
> >> which it's desirable to limit optimisation there.
> >>
> >> For example, suppose we have, in one compilation unit:
> >>
> >>     void f(int ra, int*rb) {
> >>       if (ra==42)
> >>         *rb=42;
> >>       else
> >>         *rb=42;
> >>     }
> >
> > Hello, Peter!
> >
> > Nice example!
> >
> > The relevant portion of Documentation/memory-barriers.txt in my -rcu tree
> > says the following about the control dependency in the above construct:
> >
> > ------------------------------------------------------------------------
> >
> >         q = ACCESS_ONCE(a);
> >         if (q) {
> >                 barrier();
> >                 ACCESS_ONCE(b) = p;
> >                 do_something();
> >         } else {
> >                 barrier();
> >                 ACCESS_ONCE(b) = p;
> >                 do_something_else();
> >         }
> >
> > The initial ACCESS_ONCE() is required to prevent the compiler from
> > proving the value of 'a', and the pair of barrier() invocations are
> > required to prevent the compiler from pulling the two identical stores
> > to 'b' out from the legs of the "if" statement.
> 
> thanks
> 
> > ------------------------------------------------------------------------
> >
> > So yes, current compilers need significant help if it is necessary to
> > maintain dependencies in that sort of code.
> >
> > Similar examples came up in the data-dependency discussions in the
> > standards committee, which led to the [[carries_dependency]] attribute for
> > C11 and C++11.  Of course, current compilers don't have this attribute,
> > and the current Linux kernel code doesn't have any other marking for
> > data dependencies passing across function boundaries.  (Maybe some time
> > as an assist for detecting pointer leaks out of RCU read-side critical
> > sections, but efforts along those lines are a bit stalled at the moment.)
> >
> > More on data dependencies below...
> >
> >> and in another compilation unit the bodies of two threads:
> >>
> >>     // Thread 0
> >>     r1 = x;
> >>     f(r1,&r2);
> >>     y = r2;
> >>
> >>     // Thread 1
> >>     r3 = y;
> >>     f(r3,&r4);
> >>     x = r4;
> >>
> >> where accesses to x and y are annotated C11 atomic
> >> memory_order_relaxed or Linux ACCESS_ONCE(), accesses to
> >> r1,r2,r3,r4,ra,rb are not annotated, and x and y initially hold 0.
> >>
> >> (Of course, this is an artificial example, to make the point below as
> >> simply as possible - in real code the branches of the conditional
> >> might not be syntactically identical, just equivalent after macro
> >> expansion and other optimisation.)
> >>
> >> In the source program there's a dependency from the read of x to the
> >> write of y in Thread 0, and from the read of y to the write of x on
> >> Thread 1.  Dependency-respecting compilation would preserve those and
> >> the ARM and POWER architectures both respect them, so the reads of x
> >> and y could not give 42.
> >>
> >> But a compiler might well optimise the (non-atomic) body of f() to
> >> just *rb=42, making the threads effectively
> >>
> >>     // Thread 0
> >>     r1 = x;
> >>     y = 42;
> >>
> >>     // Thread 1
> >>     r3 = y;
> >>     x = 42;
> >>
> >> (GCC does this at O1, O2, and O3) and the ARM and POWER architectures
> >> permit those two reads to see 42. That is moreover actually observable
> >> on current ARM hardware.
> >
> > I do agree that this could happen on current compilers and hardware.
> >
> > Agreed, but as Peter Zijlstra noted in this thread, this optimization
> > is to a control dependency, not a data dependency.
> 
> Indeed.  In principle (again as Hans has observed) a compiler might
> well convert between the two, e.g. if operating on single-bit values,
> or where value-range analysis has shown that a variable can only
> contain one of a small set of values.   I don't know whether that
> happens in practice?  Then there are also cases where a compiler is
> very likely to remove data/address dependencies, eg if some constant C
> is #define'd to be 0 then an array access indexed by x * C will have
> the dependency on x removed.  The runtime and compiler development
> costs of preventing that are also unclear to me.
> 
> Given that, whether it's reasonable to treat control and data
> dependencies differently seems to be an open question.

Here is another (admittedly fanciful and probably buggy) implementation
of f() that relies on data dependencies (according to C11 and C++11),
but which could not be relied on to preserve thosse data dependencies
given current pre-C11 compilers:

	int arr[2] = { 42, 43 };
	int *bigarr;

	int f(int ra)
	{
		return arr[ra != 42];
	}

	// Thread 0
	r1 = atomic_load_explicit(&gidx, memory_order_consume);
	r2 = bigarr[f(r1)];

	// Thread 1
	r3 = random() % BIGARR_SIZE;
	bigarr[r3] = some_integer();
	atomic_store_explicit(&gidx, r3, memory_order_release);

	// Mainprogram
	bigarr = kmalloc(BIGARR_SIZE * sizeof(*bigarr), ...);
	// Note: bigarr currently contains pre-initialization garbage
	// Spawn threads 1 and 2

Many compilers would be happy to convert f() into something like the
following:

	int f(int ra)
	{
		if (ra == 42)
			return arr[0];
		else
			return arr[1];
	}

And many would argue that this is a perfectly reasonable conversion.

However, this breaks the data dependency, and allows Thread 0's load
from bigarr[] to be speculated, so that r2 might end up containing
pre-initialization garbage.  This is why the consume.2014.02.16c.pdf
document advises against attempting to carry dependencies through
relational operators and booleans (&& and ||) when using current compilers
(hmmm...  I need to make that advice more strongly stated).  And again,
this is one of the reasons for the [[carries_dependency]] attribute in
C11 -- to signal the compiler to be careful in a given function.

Again, this example is fanciful.  It is intended to illustrate a data
dependency that could be broken given current compilers and hardware.
It is -not- intended as an example of good code for the Linux kernel,
much the opposite, in fact.

That said, I would very much welcome a more realistic example.

> >> So as far as we can see, either:
> >>
> >> 1) if you can accept the latter behaviour (if the Linux codebase does
> >>    not rely on its absence), the language definition should permit it,
> >>    and current compiler optimisations can be used,
> >>
> >> or
> >>
> >> 2) otherwise, the language definition should prohibit it but the
> >>    compiler would have to preserve dependencies even in compilation
> >>    units that have no mention of atomics.  It's unclear what the
> >>    (runtime and compiler development) cost of that would be in
> >>    practice - perhaps Torvald could comment?
> >
> > For current compilers, we have to rely on coding conventions within
> > the Linux kernel in combination with non-standard extentions to gcc
> > and specified compiler flags to disable undesirable behavior.  I have a
> > start on specifying this in a document I am preparing for the standards
> > committee, a very early draft of which may be found here:
> >
> > http://www2.rdrop.com/users/paulmck/scalability/paper/consume.2014.02.16c.pdf
> >
> > Section 3 shows the results of a manual scan through the Linux kernel's
> > dependency chains, and Section 4.1 lists a probably incomplete (and no
> > doubt erroneous) list of coding standards required to make dependency
> > chains work on current compilers.  Any comments and suggestions are more
> > than welcome!
> 
> Thanks, that's very interesting (especially the non-local dependency chains).
> 
> At a first glance, the "4.1 Rules for C-Language RCU Users" seem
> pretty fragile - they're basically trying to guess the limits of
> compiler optimisation smartness.

Agreed, but that is the world we currently must live in, given pre-C11
compilers and the tepid implementations of memory_order_consume in
the current C11 implementations that I am aware of.  As long as the
Linux kernel must live in this world for some time to come, I might as
well document the limitations, fragile though they might be.

> >> For more context, this example is taken from a summary of the thin-air
> >> problem by Mark Batty and myself,
> >> <www.cl.cam.ac.uk/~pes20/cpp/notes42.html>, and the problem with
> >> dependencies via other compilation units was AFAIK first pointed out
> >> by Hans Boehm.
> >
> > Nice document!
> >
> > One point of confusion for me...  Example 4 says "language must allow".
> > Shouldn't that be "language is permitted to allow"?  Seems like an
> > implementation is always within its rights to avoid an optimization if
> > its implementation prevents it from safely detecting the oppportunity
> > for that optimization.  Or am I missing something here?
> 
> We're saying that the language definition must allow it, not that any
> particular implementation must be able to exhibit it.

Ah, got it.  You had me worried there for a bit!  ;-)

							Thanx, Paul

  parent reply	other threads:[~2014-02-18 16:47 UTC|newest]

Thread overview: 443+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-18 12:12 [RFC][PATCH 0/5] arch: atomic rework Peter Sewell
2014-02-18 12:53 ` Peter Zijlstra
2014-02-18 12:53   ` Peter Zijlstra
2014-02-18 16:08   ` Peter Sewell
2014-02-18 14:56 ` Paul E. McKenney
2014-02-18 14:56   ` Paul E. McKenney
2014-02-18 15:16   ` Mark Batty
2014-02-18 17:17     ` Paul E. McKenney
2014-02-18 15:33   ` Peter Sewell
2014-02-18 15:33     ` Peter Sewell
2014-02-18 16:47     ` Paul E. McKenney [this message]
2014-02-18 17:38 ` Linus Torvalds
2014-02-18 18:21   ` Peter Sewell
2014-02-18 18:49     ` Linus Torvalds
2014-02-18 19:47       ` Paul E. McKenney
2014-02-18 20:46     ` Torvald Riegel
2014-02-18 20:46       ` Torvald Riegel
2014-02-18 20:43 ` Torvald Riegel
2014-02-18 20:43   ` Torvald Riegel
2014-02-18 21:29   ` Paul E. McKenney
2014-02-18 23:48   ` Peter Sewell
2014-02-19  9:46     ` Torvald Riegel
2014-02-19  9:46       ` Torvald Riegel
  -- strict thread matches above, loose matches on Subject: below --
2014-02-26  3:06 George Spelvin
2014-02-26  5:22 ` Paul E. McKenney
2014-02-06 13:48 Peter Zijlstra
2014-02-06 18:25 ` David Howells
2014-02-06 18:30   ` Peter Zijlstra
2014-02-06 18:42   ` Paul E. McKenney
2014-02-06 18:42     ` Paul E. McKenney
2014-02-06 18:55   ` Ramana Radhakrishnan
2014-02-06 18:59     ` Will Deacon
2014-02-06 18:59       ` Will Deacon
2014-02-06 19:27       ` Paul E. McKenney
2014-02-06 19:27         ` Paul E. McKenney
2014-02-06 21:17         ` Torvald Riegel
2014-02-06 21:17           ` Torvald Riegel
2014-02-06 22:11           ` Paul E. McKenney
2014-02-06 23:44             ` Torvald Riegel
2014-02-06 23:44               ` Torvald Riegel
2014-02-07  4:20               ` Paul E. McKenney
2014-02-07  7:44                 ` Peter Zijlstra
2014-02-07  7:44                   ` Peter Zijlstra
2014-02-07 16:50                   ` Paul E. McKenney
2014-02-07 16:50                     ` Paul E. McKenney
2014-02-07 16:55                     ` Will Deacon
2014-02-07 16:55                       ` Will Deacon
2014-02-07 17:06                       ` Peter Zijlstra
2014-02-07 17:13                         ` Will Deacon
2014-02-07 17:13                           ` Will Deacon
2014-02-07 17:20                           ` Peter Zijlstra
2014-02-07 17:20                             ` Peter Zijlstra
2014-02-07 18:03                           ` Paul E. McKenney
2014-02-07 18:03                             ` Paul E. McKenney
2014-02-07 17:46                         ` Joseph S. Myers
2014-02-07 18:43                         ` Torvald Riegel
2014-02-07 18:43                           ` Torvald Riegel
2014-02-07 18:02                       ` Paul E. McKenney
2014-02-07 18:02                         ` Paul E. McKenney
2014-02-10  0:27                         ` Torvald Riegel
2014-02-10  0:27                           ` Torvald Riegel
2014-02-10  0:56                           ` Linus Torvalds
2014-02-10  1:16                             ` Torvald Riegel
2014-02-10  1:16                               ` Torvald Riegel
2014-02-10  1:24                               ` Linus Torvalds
2014-02-10  1:46                                 ` Torvald Riegel
2014-02-10  1:46                                   ` Torvald Riegel
2014-02-10  2:04                                   ` Linus Torvalds
2014-02-10  3:21                           ` Paul E. McKenney
2014-02-10  3:45                           ` Paul E. McKenney
2014-02-10 11:46                           ` Peter Zijlstra
2014-02-10 19:09                           ` Linus Torvalds
2014-02-11 15:59                             ` Paul E. McKenney
2014-02-12  6:06                               ` Torvald Riegel
2014-02-12  6:06                                 ` Torvald Riegel
2014-02-12  9:19                                 ` Peter Zijlstra
2014-02-12  9:19                                   ` Peter Zijlstra
2014-02-12 17:42                                   ` Paul E. McKenney
2014-02-12 18:12                                     ` Peter Zijlstra
2014-02-12 18:12                                       ` Peter Zijlstra
2014-02-17 18:18                                       ` Paul E. McKenney
2014-02-17 20:39                                         ` Richard Biener
2014-02-17 22:14                                           ` Paul E. McKenney
2014-02-17 22:14                                             ` Paul E. McKenney
2014-02-17 22:27                                             ` Torvald Riegel
2014-02-17 22:27                                               ` Torvald Riegel
2014-02-14  5:07                                   ` Torvald Riegel
2014-02-14  5:07                                     ` Torvald Riegel
2014-02-14  9:50                                     ` Peter Zijlstra
2014-02-14  9:50                                       ` Peter Zijlstra
2014-02-14 19:19                                       ` Torvald Riegel
2014-02-14 19:19                                         ` Torvald Riegel
2014-02-12 17:39                                 ` Paul E. McKenney
2014-02-12  5:39                             ` Torvald Riegel
2014-02-12  5:39                               ` Torvald Riegel
2014-02-12 18:07                               ` Paul E. McKenney
2014-02-12 18:07                                 ` Paul E. McKenney
2014-02-12 20:22                                 ` Linus Torvalds
2014-02-13  0:23                                   ` Paul E. McKenney
2014-02-13 20:03                                     ` Torvald Riegel
2014-02-13 20:03                                       ` Torvald Riegel
2014-02-14  2:01                                       ` Paul E. McKenney
2014-02-14  2:01                                         ` Paul E. McKenney
2014-02-14  4:43                                         ` Torvald Riegel
2014-02-14  4:43                                           ` Torvald Riegel
2014-02-14 17:29                                           ` Paul E. McKenney
2014-02-14 19:21                                             ` Torvald Riegel
2014-02-14 19:21                                               ` Torvald Riegel
2014-02-14 19:50                                             ` Linus Torvalds
2014-02-14 20:02                                               ` Linus Torvalds
2014-02-15  2:08                                                 ` Paul E. McKenney
2014-02-15  2:08                                                   ` Paul E. McKenney
2014-02-15  2:44                                                   ` Linus Torvalds
2014-02-15  2:48                                                     ` Linus Torvalds
2014-02-15  2:48                                                       ` Linus Torvalds
2014-02-15  6:35                                                       ` Paul E. McKenney
2014-02-15  6:35                                                         ` Paul E. McKenney
2014-02-15  6:58                                                         ` Paul E. McKenney
2014-02-15 18:07                                                     ` Torvald Riegel
2014-02-15 18:07                                                       ` Torvald Riegel
2014-02-17 18:59                                                       ` Joseph S. Myers
2014-02-17 19:19                                                         ` Will Deacon
2014-02-17 19:19                                                           ` Will Deacon
2014-02-17 19:41                                                         ` Torvald Riegel
2014-02-17 19:41                                                           ` Torvald Riegel
2014-02-17 23:12                                                           ` Joseph S. Myers
2014-02-15 17:45                                                 ` Torvald Riegel
2014-02-15 17:45                                                   ` Torvald Riegel
2014-02-15 18:49                                                   ` Linus Torvalds
2014-02-15 18:49                                                     ` Linus Torvalds
2014-02-17 19:55                                                     ` Torvald Riegel
2014-02-17 19:55                                                       ` Torvald Riegel
2014-02-17 20:18                                                       ` Linus Torvalds
2014-02-17 21:21                                                         ` Torvald Riegel
2014-02-17 21:21                                                           ` Torvald Riegel
2014-02-17 22:02                                                           ` Linus Torvalds
2014-02-17 22:02                                                             ` Linus Torvalds
2014-02-17 22:25                                                             ` Torvald Riegel
2014-02-17 22:25                                                               ` Torvald Riegel
2014-02-17 22:47                                                               ` Linus Torvalds
2014-02-17 23:41                                                                 ` Torvald Riegel
2014-02-17 23:41                                                                   ` Torvald Riegel
2014-02-18  0:18                                                                   ` Linus Torvalds
2014-02-18  1:26                                                                     ` Paul E. McKenney
2014-02-18  1:26                                                                       ` Paul E. McKenney
2014-02-18 15:38                                                                     ` Torvald Riegel
2014-02-18 15:38                                                                       ` Torvald Riegel
2014-02-18 16:55                                                                       ` Paul E. McKenney
2014-02-18 19:57                                                                         ` Torvald Riegel
2014-02-18 19:57                                                                           ` Torvald Riegel
2014-02-17 23:10                                                         ` Alec Teal
2014-02-17 23:10                                                           ` Alec Teal
2014-02-18  0:05                                                           ` Linus Torvalds
2014-02-18 15:31                                                             ` Torvald Riegel
2014-02-18 15:31                                                               ` Torvald Riegel
2014-02-18 16:49                                                               ` Linus Torvalds
2014-02-18 17:16                                                                 ` Paul E. McKenney
2014-02-18 17:16                                                                   ` Paul E. McKenney
2014-02-18 18:23                                                                   ` Peter Sewell
2014-02-18 18:23                                                                     ` Peter Sewell
2014-02-18 19:00                                                                     ` Linus Torvalds
2014-02-18 19:00                                                                       ` Linus Torvalds
2014-02-18 19:42                                                                     ` Paul E. McKenney
2014-02-18 21:40                                                                   ` Torvald Riegel
2014-02-18 21:40                                                                     ` Torvald Riegel
2014-02-18 21:52                                                                     ` Peter Zijlstra
2014-02-18 21:52                                                                       ` Peter Zijlstra
2014-02-19  9:52                                                                       ` Torvald Riegel
2014-02-19  9:52                                                                         ` Torvald Riegel
2014-02-18 22:58                                                                     ` Paul E. McKenney
2014-02-19 10:59                                                                       ` Torvald Riegel
2014-02-19 10:59                                                                         ` Torvald Riegel
2014-02-19 15:14                                                                         ` Paul E. McKenney
2014-02-19 15:14                                                                           ` Paul E. McKenney
2014-02-19 17:55                                                                           ` Torvald Riegel
2014-02-19 17:55                                                                             ` Torvald Riegel
2014-02-19 22:12                                                                             ` Paul E. McKenney
2014-02-18 21:21                                                                 ` Torvald Riegel
2014-02-18 21:21                                                                   ` Torvald Riegel
2014-02-18 21:40                                                                   ` Peter Zijlstra
2014-02-18 21:47                                                                     ` Torvald Riegel
2014-02-18 21:47                                                                       ` Torvald Riegel
2014-02-19 15:23                                                                       ` David Lang
2014-02-19 15:23                                                                         ` David Lang
2014-02-19 18:11                                                                         ` Torvald Riegel
2014-02-19 18:11                                                                           ` Torvald Riegel
2014-02-18 21:47                                                                   ` Peter Zijlstra
2014-02-18 21:47                                                                     ` Peter Zijlstra
2014-02-19 11:07                                                                     ` Torvald Riegel
2014-02-19 11:07                                                                       ` Torvald Riegel
2014-02-19 11:42                                                                       ` Peter Zijlstra
2014-02-18 22:14                                                                   ` Linus Torvalds
2014-02-19 14:40                                                                     ` Torvald Riegel
2014-02-19 14:40                                                                       ` Torvald Riegel
2014-02-19 19:49                                                                       ` Linus Torvalds
2014-02-19 19:49                                                                         ` Linus Torvalds
2014-02-18  3:00                                                         ` Paul E. McKenney
2014-02-18  3:24                                                           ` Linus Torvalds
2014-02-18  3:42                                                             ` Linus Torvalds
2014-02-18  5:22                                                               ` Paul E. McKenney
2014-02-18 16:17                                                               ` Torvald Riegel
2014-02-18 16:17                                                                 ` Torvald Riegel
2014-02-18 17:44                                                                 ` Linus Torvalds
2014-02-18 19:40                                                                   ` Paul E. McKenney
2014-02-18 19:47                                                                   ` Torvald Riegel
2014-02-18 19:47                                                                     ` Torvald Riegel
2014-02-20  0:53                                                                     ` Linus Torvalds
2014-02-20  0:53                                                                       ` Linus Torvalds
2014-02-20  4:01                                                                       ` Paul E. McKenney
2014-02-20  4:43                                                                         ` Linus Torvalds
2014-02-20  4:43                                                                           ` Linus Torvalds
2014-02-20  8:30                                                                           ` Paul E. McKenney
2014-02-20  9:20                                                                             ` Paul E. McKenney
2014-02-20 17:01                                                                             ` Linus Torvalds
2014-02-20 18:11                                                                               ` Paul E. McKenney
2014-02-20 18:32                                                                                 ` Linus Torvalds
2014-02-20 18:32                                                                                   ` Linus Torvalds
2014-02-20 18:53                                                                                   ` Torvald Riegel
2014-02-20 18:53                                                                                     ` Torvald Riegel
2014-02-20 19:09                                                                                     ` Linus Torvalds
2014-02-20 19:09                                                                                       ` Linus Torvalds
2014-02-22 18:53                                                                                       ` Torvald Riegel
2014-02-22 18:53                                                                                         ` Torvald Riegel
2014-02-22 21:53                                                                                         ` Linus Torvalds
2014-02-23  0:39                                                                                           ` Paul E. McKenney
2014-02-23  3:50                                                                                             ` Linus Torvalds
2014-02-23  6:34                                                                                               ` Paul E. McKenney
2014-02-23 19:31                                                                                                 ` Linus Torvalds
2014-02-24  1:16                                                                                                   ` Paul E. McKenney
2014-02-24  1:35                                                                                                     ` Linus Torvalds
2014-02-24  1:35                                                                                                       ` Linus Torvalds
2014-02-24  4:59                                                                                                       ` Paul E. McKenney
2014-02-24  4:59                                                                                                         ` Paul E. McKenney
2014-02-24  5:25                                                                                                         ` Linus Torvalds
2014-02-24  5:25                                                                                                           ` Linus Torvalds
2014-02-24 15:57                                                                                                   ` Linus Torvalds
2014-02-24 16:27                                                                                                     ` Richard Biener
2014-02-24 16:27                                                                                                       ` Richard Biener
2014-02-24 16:37                                                                                                       ` Linus Torvalds
2014-02-24 16:40                                                                                                         ` Linus Torvalds
2014-02-24 16:40                                                                                                           ` Linus Torvalds
2014-02-24 16:55                                                                                                         ` Michael Matz
2014-02-24 16:55                                                                                                           ` Michael Matz
2014-02-24 17:28                                                                                                           ` Paul E. McKenney
2014-02-24 17:28                                                                                                             ` Paul E. McKenney
2014-02-24 17:57                                                                                                             ` Paul E. McKenney
2014-02-24 17:57                                                                                                               ` Paul E. McKenney
2014-02-26 17:39                                                                                                             ` Torvald Riegel
2014-02-26 17:39                                                                                                               ` Torvald Riegel
2014-02-24 17:38                                                                                                           ` Linus Torvalds
2014-02-24 18:12                                                                                                             ` Paul E. McKenney
2014-02-26 17:34                                                                                                             ` Torvald Riegel
2014-02-26 17:34                                                                                                               ` Torvald Riegel
2014-02-24 17:21                                                                                                     ` Paul E. McKenney
2014-02-24 18:14                                                                                                       ` Linus Torvalds
2014-02-24 18:53                                                                                                         ` Paul E. McKenney
2014-02-24 18:53                                                                                                           ` Paul E. McKenney
2014-02-24 19:54                                                                                                           ` Linus Torvalds
2014-02-24 22:37                                                                                                             ` Paul E. McKenney
2014-02-24 23:35                                                                                                               ` Linus Torvalds
2014-02-25  6:00                                                                                                                 ` Paul E. McKenney
2014-02-25  6:00                                                                                                                   ` Paul E. McKenney
2014-02-26  1:47                                                                                                                   ` Linus Torvalds
2014-02-26  5:12                                                                                                                     ` Paul E. McKenney
2014-02-26  5:12                                                                                                                       ` Paul E. McKenney
2014-02-25  6:05                                                                                                                 ` Linus Torvalds
2014-02-25  6:05                                                                                                                   ` Linus Torvalds
2014-02-26  0:15                                                                                                                   ` Paul E. McKenney
2014-02-26  0:15                                                                                                                     ` Paul E. McKenney
2014-02-26  3:32                                                                                                                     ` Jeff Law
2014-02-26  3:32                                                                                                                       ` Jeff Law
2014-02-26  5:23                                                                                                                       ` Paul E. McKenney
2014-02-26  5:23                                                                                                                         ` Paul E. McKenney
2014-02-27 15:37                                                                                                             ` Torvald Riegel
2014-02-27 15:37                                                                                                               ` Torvald Riegel
2014-02-27 17:01                                                                                                               ` Linus Torvalds
2014-02-27 19:06                                                                                                                 ` Paul E. McKenney
2014-02-27 19:06                                                                                                                   ` Paul E. McKenney
2014-02-27 19:47                                                                                                                   ` Linus Torvalds
2014-02-27 19:47                                                                                                                     ` Linus Torvalds
2014-02-27 20:53                                                                                                                     ` Paul E. McKenney
2014-03-01  0:50                                                                                                                       ` Paul E. McKenney
2014-03-01 10:06                                                                                                                         ` Peter Sewell
2014-03-01 10:06                                                                                                                           ` Peter Sewell
2014-03-01 14:03                                                                                                                           ` Paul E. McKenney
2014-03-02 10:05                                                                                                                             ` Peter Sewell
2014-03-02 10:05                                                                                                                               ` Peter Sewell
2014-03-02 23:20                                                                                                                               ` Paul E. McKenney
2014-03-02 23:44                                                                                                                                 ` Peter Sewell
2014-03-03  4:25                                                                                                                                   ` Paul E. McKenney
2014-03-03  4:25                                                                                                                                     ` Paul E. McKenney
2014-03-03 20:44                                                                                                                               ` Torvald Riegel
2014-03-03 20:44                                                                                                                                 ` Torvald Riegel
2014-03-04 22:11                                                                                                                                 ` Peter Sewell
2014-03-05 17:15                                                                                                                                   ` Torvald Riegel
2014-03-05 17:15                                                                                                                                     ` Torvald Riegel
2014-03-05 18:37                                                                                                                                     ` Peter Sewell
2014-03-05 18:37                                                                                                                                       ` Peter Sewell
2014-03-03 18:55                                                                                                                         ` Torvald Riegel
2014-03-03 18:55                                                                                                                           ` Torvald Riegel
2014-03-03 19:20                                                                                                                           ` Paul E. McKenney
2014-03-03 19:20                                                                                                                             ` Paul E. McKenney
2014-03-03 20:46                                                                                                                             ` Torvald Riegel
2014-03-03 20:46                                                                                                                               ` Torvald Riegel
2014-03-04 19:00                                                                                                                               ` Paul E. McKenney
2014-03-04 21:35                                                                                                                                 ` Paul E. McKenney
2014-03-04 21:35                                                                                                                                   ` Paul E. McKenney
2014-03-05 16:54                                                                                                                                   ` Torvald Riegel
2014-03-05 16:54                                                                                                                                     ` Torvald Riegel
2014-03-05 18:15                                                                                                                                     ` Paul E. McKenney
2014-03-07 18:33                                                                                                                                       ` Torvald Riegel
2014-03-07 18:33                                                                                                                                         ` Torvald Riegel
2014-03-07 19:11                                                                                                                                         ` Paul E. McKenney
2014-03-05 16:26                                                                                                                                 ` Torvald Riegel
2014-03-05 16:26                                                                                                                                   ` Torvald Riegel
2014-03-05 18:01                                                                                                                                   ` Paul E. McKenney
2014-03-07 17:45                                                                                                                                     ` Torvald Riegel
2014-03-07 17:45                                                                                                                                       ` Torvald Riegel
2014-03-07 19:02                                                                                                                                       ` Paul E. McKenney
2014-03-03 18:59                                                                                                                     ` Torvald Riegel
2014-03-03 18:59                                                                                                                       ` Torvald Riegel
2014-03-03 15:36                                                                                                                 ` Torvald Riegel
2014-03-03 15:36                                                                                                                   ` Torvald Riegel
2014-02-27 17:50                                                                                                               ` Paul E. McKenney
2014-02-27 19:22                                                                                                                 ` Paul E. McKenney
2014-02-28  1:02                                                                                                                 ` Paul E. McKenney
2014-03-03 19:29                                                                                                                   ` Torvald Riegel
2014-03-03 19:01                                                                                                                 ` Torvald Riegel
2014-03-03 19:01                                                                                                                   ` Torvald Riegel
2014-02-20 18:56                                                                                   ` Paul E. McKenney
2014-02-20 18:56                                                                                     ` Paul E. McKenney
2014-02-20 19:45                                                                                     ` Linus Torvalds
2014-02-20 22:10                                                                                       ` Paul E. McKenney
2014-02-20 22:52                                                                                         ` Linus Torvalds
2014-02-20 22:52                                                                                           ` Linus Torvalds
2014-02-21 18:35                                                                                           ` Michael Matz
2014-02-21 19:13                                                                                             ` Paul E. McKenney
2014-02-21 19:13                                                                                               ` Paul E. McKenney
2014-02-21 22:10                                                                                               ` Joseph S. Myers
2014-02-21 22:37                                                                                                 ` Paul E. McKenney
2014-02-26 13:09                                                                                                 ` Torvald Riegel
2014-02-26 13:09                                                                                                   ` Torvald Riegel
2014-02-26 18:43                                                                                                   ` Joseph S. Myers
2014-02-26 18:43                                                                                                     ` Joseph S. Myers
2014-02-27  0:52                                                                                                     ` Torvald Riegel
2014-02-27  0:52                                                                                                       ` Torvald Riegel
2014-02-24 13:55                                                                                               ` Michael Matz
2014-02-24 17:40                                                                                                 ` Paul E. McKenney
2014-02-26 13:04                                                                                               ` Torvald Riegel
2014-02-26 13:04                                                                                                 ` Torvald Riegel
2014-02-26 18:27                                                                                                 ` Paul E. McKenney
2014-02-26 18:27                                                                                                   ` Paul E. McKenney
2014-02-20 18:44                                                                                 ` Torvald Riegel
2014-02-20 18:44                                                                                   ` Torvald Riegel
2014-02-20 18:56                                                                                   ` Paul E. McKenney
2014-02-20 18:23                                                                               ` Torvald Riegel
2014-02-20 18:23                                                                                 ` Torvald Riegel
     [not found]                                                                               ` <CAHWkzRQZ8+gOGMFNyTKjFNzpUv6d_J1G9KL0x_iCa=YCgvEojQ@mail.gmail.com>
2014-02-21 19:16                                                                                 ` Linus Torvalds
2014-02-21 19:41                                                                                   ` Linus Torvalds
2014-02-21 19:48                                                                                     ` Peter Sewell
2014-02-21 19:48                                                                                       ` Peter Sewell
     [not found]                                                                                 ` <CAHWkzRRxqhH+DnuQHu9bM4ywGBen3oqtT8W4Xqt1CFAHy2WQRg@mail.gmail.com>
2014-02-21 19:24                                                                                   ` Paul E. McKenney
     [not found]                                                                                 ` <CA+55aFyDQ-9mJJUUXqp+ XWrpA8JMP0=exKa=JpiaNM9wAAsCrA@mail.gmail.com>
     [not found]                                                                                   ` <CAHWkzRSO82jU-9dtTEjHaW2FeLcEqdZXxp5Q8cmVTTT9uhZQYw@mail.gmail.com>
2014-02-21 20:22                                                                                     ` Linus Torvalds
2014-02-21 20:22                                                                                       ` Linus Torvalds
2014-02-20 17:54                                                                             ` Torvald Riegel
2014-02-20 17:54                                                                               ` Torvald Riegel
2014-02-20 18:11                                                                               ` Paul E. McKenney
2014-02-20 17:49                                                                           ` Torvald Riegel
2014-02-20 17:49                                                                             ` Torvald Riegel
2014-02-20 18:25                                                                             ` Linus Torvalds
2014-02-20 19:02                                                                               ` Linus Torvalds
2014-02-20 19:06                                                                                 ` Linus Torvalds
2014-02-20 17:26                                                                         ` Torvald Riegel
2014-02-20 17:26                                                                           ` Torvald Riegel
2014-02-20 18:18                                                                           ` Paul E. McKenney
2014-02-22 18:30                                                                             ` Torvald Riegel
2014-02-22 18:30                                                                               ` Torvald Riegel
2014-02-22 20:17                                                                               ` Paul E. McKenney
2014-02-20 17:14                                                                       ` Torvald Riegel
2014-02-20 17:14                                                                         ` Torvald Riegel
2014-02-20 17:34                                                                         ` Linus Torvalds
2014-02-20 18:12                                                                           ` Torvald Riegel
2014-02-20 18:26                                                                           ` Paul E. McKenney
2014-02-18  5:01                                                             ` Paul E. McKenney
2014-02-18 15:56                                                           ` Torvald Riegel
2014-02-18 15:56                                                             ` Torvald Riegel
2014-02-18 16:51                                                             ` Paul E. McKenney
2014-02-18 16:51                                                               ` Paul E. McKenney
2014-02-17 20:23                                                       ` Paul E. McKenney
2014-02-17 20:23                                                         ` Paul E. McKenney
2014-02-17 21:05                                                         ` Torvald Riegel
2014-02-17 21:05                                                           ` Torvald Riegel
2014-02-15 17:30                                               ` Torvald Riegel
2014-02-15 17:30                                                 ` Torvald Riegel
2014-02-15 19:15                                                 ` Linus Torvalds
2014-02-17 22:09                                                   ` Torvald Riegel
2014-02-17 22:09                                                     ` Torvald Riegel
2014-02-17 22:32                                                     ` Linus Torvalds
2014-02-17 22:32                                                       ` Linus Torvalds
2014-02-17 23:17                                                       ` Torvald Riegel
2014-02-17 23:17                                                         ` Torvald Riegel
2014-02-18  0:09                                                         ` Linus Torvalds
2014-02-18  0:09                                                           ` Linus Torvalds
2014-02-18 15:46                                                           ` Torvald Riegel
2014-02-18 15:46                                                             ` Torvald Riegel
2014-02-10 11:48                         ` Peter Zijlstra
2014-02-10 11:49                           ` Will Deacon
2014-02-10 11:49                             ` Will Deacon
2014-02-10 12:05                             ` Peter Zijlstra
2014-02-10 12:05                               ` Peter Zijlstra
2014-02-10 15:04                             ` Paul E. McKenney
2014-02-10 15:04                               ` Paul E. McKenney
2014-02-10 16:22                               ` Will Deacon
2014-02-10 16:22                                 ` Will Deacon
2014-02-07 18:44                     ` Torvald Riegel
2014-02-07 18:44                       ` Torvald Riegel
2014-02-10  0:06                 ` Torvald Riegel
2014-02-10  0:06                   ` Torvald Riegel
2014-02-10  3:51                   ` Paul E. McKenney
2014-02-12  5:13                     ` Torvald Riegel
2014-02-12  5:13                       ` Torvald Riegel
2014-02-12 18:26                       ` Paul E. McKenney
2014-02-12 18:26                         ` Paul E. McKenney
2014-02-06 21:09       ` Torvald Riegel
2014-02-06 21:09         ` Torvald Riegel
2014-02-06 21:55         ` Paul E. McKenney
2014-02-06 22:58           ` Torvald Riegel
2014-02-06 22:58             ` Torvald Riegel
2014-02-07  4:06             ` Paul E. McKenney
2014-02-07  4:06               ` Paul E. McKenney
2014-02-07  9:13               ` Torvald Riegel
2014-02-07  9:13                 ` Torvald Riegel
2014-02-07 16:44                 ` Paul E. McKenney
2014-02-07 16:44                   ` Paul E. McKenney
2014-02-06 22:13         ` Joseph S. Myers
2014-02-06 22:13           ` Joseph S. Myers
2014-02-06 23:25           ` Torvald Riegel
2014-02-06 23:25             ` Torvald Riegel
2014-02-06 23:33             ` Joseph S. Myers
2014-02-07 12:01         ` Will Deacon
2014-02-07 12:01           ` Will Deacon
2014-02-07 16:47           ` Paul E. McKenney
2014-02-06 19:21   ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140218164723.GM4250@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=Mark.Batty@cl.cam.ac.uk \
    --cc=Peter.Sewell@cl.cam.ac.uk \
    --cc=Ramana.Radhakrishnan@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    --cc=triegel@redhat.com \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).