Re: [RFC][PATCH v2 08/11] context_tracking,rcu: Replace RCU dynticks counter with context_tracking

From: Peter Zijlstra
Date: Wed Sep 29 2021 - 15:11:48 EST


On Wed, Sep 29, 2021 at 11:37:01AM -0700, Paul E. McKenney wrote:

> > +void context_tracking_idle(void)
> > +{
> > + atomic_add_return(CT_SEQ, &raw_cpu_ptr(&context_tracking)->seq);
>
> This is presumably a momentary idle.

> > notrace void rcu_momentary_dyntick_idle(void)
> > {
> > - int seq;
> > -
> > raw_cpu_write(rcu_data.rcu_need_heavy_qs, false);
> > - seq = rcu_dynticks_inc(2);
> > - /* It is illegal to call this from idle state. */
> > - WARN_ON_ONCE(!(seq & 0x1));
> > + context_tracking_idle();
> > rcu_preempt_deferred_qs(current);
> > }

It's whatever that is. It increments the actual sequence count without
modifying the state.