Re: [PATCH] rcu: small rcu_dereference doc update

Steven Rostedt
2015-04-17T14:14:01Z

On Fri, 17 Apr 2015 07:06:38 -0700
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:

> On Fri, Apr 17, 2015 at 12:33:36PM +0200, Milos Vyletel wrote:
> > Make a note stating that repeated calls of rcu_dereference() may not
> > return the same pointer if update happens while in critical section.
> >
> > Reported-by: Jeff Haran <jeff.haran@citrix.com>
> > Signed-off-by: Milos Vyletel <milos@redhat.com>
>
> Hmmm... Seems like that should be obvious, but on the other hand,
> I have been using RCU for more than twenty years, so my obviousness
> sensors might need recalibration.
>
> Queued for 4.2.

Before you queue it, there's a few articles that are screaming to be
present...

>
> Thanx, Paul
>
> > ---
> > Documentation/RCU/whatisRCU.txt | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt
> > index 88dfce1..82b1b2c 100644
> > --- a/Documentation/RCU/whatisRCU.txt
> > +++ b/Documentation/RCU/whatisRCU.txt
> > @@ -256,7 +256,9 @@ rcu_dereference()
> > If you are going to be fetching multiple fields from the
> > RCU-protected structure, using the local variable is of
> > course preferred. Repeated rcu_dereference() calls look
> > - ugly and incur unnecessary overhead on Alpha CPUs.
> > + ugly, do not guarantee that same pointer will be returned
> > + if update happened while in critical section and incur
> > + unnecessary overhead on Alpha CPUs.

ugly, do not guarantee that the same pointer will be returned
if an update happened while in the critical section, and incur
unnecessary overhead on Alpha CPUs.

-- Steve

> >
> > Note that the value returned by rcu_dereference() is valid
> > only within the enclosing RCU read-side critical section.
> > --
> > 2.1.0
> >