Messages in this thread | | | Date | Sun, 13 May 2018 22:05:36 -0700 | From | Joel Fernandes <> | Subject | Re: [PATCH RFC 1/8] rcu: Add comment documenting how rcu_seq_snap works |
| |
On Sun, May 13, 2018 at 08:47:24PM -0700, Randy Dunlap wrote: > On 05/13/2018 08:15 PM, Joel Fernandes (Google) wrote: > > rcu_seq_snap may be tricky for someone looking at it for the first time. > > Lets document how it works with an example to make it easier. > > > > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> > > --- > > kernel/rcu/rcu.h | 24 +++++++++++++++++++++++- > > 1 file changed, 23 insertions(+), 1 deletion(-) > > > > diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h > > index 003671825d62..fc3170914ac7 100644 > > --- a/kernel/rcu/rcu.h > > +++ b/kernel/rcu/rcu.h > > @@ -91,7 +91,29 @@ static inline void rcu_seq_end(unsigned long *sp) > > WRITE_ONCE(*sp, rcu_seq_endval(sp)); > > } > > > > -/* Take a snapshot of the update side's sequence number. */ > > +/* > > + * Take a snapshot of the update side's sequence number. > > + * > > + * This function predicts what the grace period number will be the next > > + * time an RCU callback will be executed, given the current grace period's > > + * number. This can be gp+1 if RCU is idle, or gp+2 if a grace period is > > + * already in progress. > > + * > > + * We do this with a single addition and masking. > > + * For example, if RCU_SEQ_STATE_MASK=1 and the least significant bit (LSB) of > > + * the seq is used to track if a GP is in progress or not, its sufficient if we > > it's
Pardon my english. Fixed, thanks,
- Joel
| |