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.