From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Pranith Kumar <bobby.prani@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Dipankar Sarma <dipankar@in.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Josh Triplett <josh@joshtriplett.org>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Steven Rostedt <rostedt@goodmis.org>,
David Howells <dhowells@redhat.com>,
Eric Dumazet <edumazet@google.com>,
Darren Hart <dvhart@linux.intel.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Oleg Nesterov <oleg@redhat.com>
Subject: Re: [PATCH tip/core/rcu 1/2] documentation: Present updated RCU guarantee
Date: Mon, 14 Nov 2016 10:39:26 -0800 [thread overview]
Message-ID: <20161114183926.GO4127@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAJhHMCBeaWzhHaFDfQJhLw9UT5JyqCqciZjJE-nJWNCPiPK+Bw@mail.gmail.com>
On Mon, Nov 14, 2016 at 11:57:46AM -0500, Pranith Kumar wrote:
> Hi Paul,
>
> On Mon, Nov 14, 2016 at 11:47 AM, Paul E. McKenney
> <paulmck@linux.vnet.ibm.com> wrote:
> > Recent memory-model work deduces the relationships of RCU read-side
> > critical sections and grace periods based on the relationships of
> > accesses within a critical section and accesses preceding and following
> > the grace period. This commit therefore adds this viewpoint.
> >
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > ---
> > .../RCU/Design/Requirements/Requirements.html | 25 +++++++++++++++++++++-
> > 1 file changed, 24 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/RCU/Design/Requirements/Requirements.html b/Documentation/RCU/Design/Requirements/Requirements.html
> > index a4d3838130e4..81b40cb83435 100644
> > --- a/Documentation/RCU/Design/Requirements/Requirements.html
> > +++ b/Documentation/RCU/Design/Requirements/Requirements.html
> > @@ -547,7 +547,7 @@ The <tt>rcu_access_pointer()</tt> on line 6 is similar to
> > It could reuse a value formerly fetched from this same pointer.
> > It could also fetch the pointer from <tt>gp</tt> in a byte-at-a-time
> > manner, resulting in <i>load tearing</i>, in turn resulting a bytewise
> > - mash-up of two distince pointer values.
> > + mash-up of two distinct pointer values.
> > It might even use value-speculation optimizations, where it makes
> > a wrong guess, but by the time it gets around to checking the
> > value, an update has changed the pointer to match the wrong guess.
> > @@ -659,6 +659,29 @@ systems with more than one CPU:
> > In other words, a given instance of <tt>synchronize_rcu()</tt>
> > can avoid waiting on a given RCU read-side critical section only
> > if it can prove that <tt>synchronize_rcu()</tt> started first.
> > +
> > + <p>
> > + A related question is “When <tt>rcu_read_lock()</tt>
> > + doesn't generate any code, why does it matter how it relates
> > + to a grace period?”
> > + The answer if that it is not the relationship of
>
> s/if/is?
Good catch, fixed!
Thanx, Paul
> > + <tt>rcu_read_lock()</tt> itself that is important, but rather
> > + the relationship of the code within the enclosed RCU read-side
> > + critical section to the code preceding and following the
> > + grace period.
> > + If we take this viewpoint, then a given RCU read-side critical
> > + section begins before a given grace period when some access
> > + preceding the grace period observes the effect of some access
> > + within the critical section, in which case none of the accesses
> > + within the critical section may observe the effects of any
> > + access following the grace period.
> > +
> > + <p>
> > + As of late 2016, mathematical models of RCU take this
> > + viewpoint, for example, see slides 62 and 63
> > + of the
> > + <a href="http://www2.rdrop.com/users/paulmck/scalability/paper/LinuxMM.2016.10.04c.LCE.pdf">2016 LinuxCon EU</a>
> > + presentation.
> > </font></td></tr>
> > <tr><td> </td></tr>
> > </table>
> > --
> > 2.5.2
> >
>
>
>
> --
> Pranith
>
next prev parent reply other threads:[~2016-11-14 18:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-14 16:46 [PATCH tip/core/rcu 0/2] Documenmtation update for 4.10 Paul E. McKenney
2016-11-14 16:47 ` [PATCH tip/core/rcu 1/2] documentation: Present updated RCU guarantee Paul E. McKenney
2016-11-14 16:57 ` Pranith Kumar
2016-11-14 18:39 ` Paul E. McKenney [this message]
2016-11-14 16:47 ` [PATCH tip/core/rcu 2/2] Documentation/RCU: Fix minor typo Paul E. McKenney
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=20161114183926.GO4127@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=bobby.prani@gmail.com \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=dvhart@linux.intel.com \
--cc=edumazet@google.com \
--cc=fweisbec@gmail.com \
--cc=jiangshanlai@gmail.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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.