All of lore.kernel.org
 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

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

Thread overview: 315+ 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 16:08   ` Peter Sewell
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 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: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
  -- 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:55   ` Ramana Radhakrishnan
2014-02-06 18:59     ` Will Deacon
2014-02-06 19:27       ` Paul E. McKenney
2014-02-06 21:17         ` Torvald Riegel
2014-02-06 22:11           ` Paul E. McKenney
2014-02-06 23:44             ` Torvald Riegel
2014-02-07  4:20               ` Paul E. McKenney
2014-02-07  4:20                 ` Paul E. McKenney
2014-02-07  7:44                 ` Peter Zijlstra
2014-02-07 16:50                   ` Paul E. McKenney
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:20                           ` Peter Zijlstra
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:02                       ` Paul E. McKenney
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:24                               ` Linus Torvalds
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  9:19                                 ` Peter Zijlstra
2014-02-12 17:42                                   ` Paul E. McKenney
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 20:39                                           ` Richard Biener
2014-02-17 22:14                                           ` Paul E. McKenney
2014-02-17 22:27                                             ` Torvald Riegel
2014-02-14  5:07                                   ` Torvald Riegel
2014-02-14  9:50                                     ` Peter Zijlstra
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 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-14  2:01                                       ` Paul E. McKenney
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: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  6:35                                                       ` Paul E. McKenney
2014-02-15  6:58                                                         ` Paul E. McKenney
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:41                                                         ` Torvald Riegel
2014-02-17 23:12                                                           ` Joseph S. Myers
2014-02-15 17:45                                                 ` Torvald Riegel
2014-02-15 18:49                                                   ` Linus Torvalds
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 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-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 18:23                                                                   ` Peter Sewell
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:52                                                                     ` Peter Zijlstra
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 15:14                                                                         ` Paul E. McKenney
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-19 15:23                                                                       ` David Lang
2014-02-19 18:11                                                                         ` Torvald Riegel
2014-02-18 21:47                                                                   ` Peter Zijlstra
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 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  4:01                                                                       ` Paul E. McKenney
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:53                                                                                   ` Torvald Riegel
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  4:59                                                                                                       ` Paul E. McKenney
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: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:57                                                                                                             ` Paul E. McKenney
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 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-26  1:47                                                                                                                   ` Linus Torvalds
2014-02-26  5:12                                                                                                                     ` Paul E. McKenney
2014-02-25  6:05                                                                                                                 ` Linus Torvalds
2014-02-26  0:15                                                                                                                   ` Paul E. McKenney
2014-02-26  3:32                                                                                                                     ` Jeff Law
2014-02-26  5:23                                                                                                                       ` Paul E. McKenney
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: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 14:03                                                                                                                           ` Paul E. McKenney
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 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 19:20                                                                                                                           ` Paul E. McKenney
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-05 16:54                                                                                                                                   ` Torvald Riegel
2014-03-05 18:15                                                                                                                                     ` Paul E. McKenney
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 18:01                                                                                                                                   ` Paul E. McKenney
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 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-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-21 18:35                                                                                           ` Michael Matz
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 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-24 17:40                                                                                                   ` Paul E. McKenney
2014-02-26 13:04                                                                                               ` Torvald Riegel
2014-02-26 18:27                                                                                                 ` Paul E. McKenney
2014-02-20 18:44                                                                                 ` Torvald Riegel
2014-02-20 18:56                                                                                   ` Paul E. McKenney
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 18:11                                                                               ` Paul E. McKenney
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 18:18                                                                           ` Paul E. McKenney
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 16:51                                                             ` Paul E. McKenney
2014-02-17 20:23                                                       ` Paul E. McKenney
2014-02-17 21:05                                                         ` 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: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 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 12:05                             ` Peter Zijlstra
2014-02-10 15:04                             ` Paul E. McKenney
2014-02-10 16:22                               ` Will Deacon
2014-02-07 18:44                     ` 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 18:26                       ` Paul E. McKenney
2014-02-06 21:09       ` Torvald Riegel
2014-02-06 21:55         ` Paul E. McKenney
2014-02-06 21:55           ` Paul E. McKenney
2014-02-06 22:58           ` Torvald Riegel
2014-02-07  4:06             ` Paul E. McKenney
2014-02-07  9:13               ` Torvald Riegel
2014-02-07 16:44                 ` Paul E. McKenney
2014-02-06 22:13         ` Joseph S. Myers
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 16:47           ` Paul E. McKenney
2014-02-06 19:21   ` Linus Torvalds
     [not found] ` <52F93B7C.2090304@tilera.com>
     [not found]   ` <20140210205719.GY5002@laptop.programming.kicks-ass.net>
2014-02-10 21:08     ` Chris Metcalf
2014-02-10 21:14       ` Peter Zijlstra

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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.