On Wed, 2018-07-11 at 16:47 -0700, Paul E. McKenney wrote: > > > > What changed was RCU's reactions to longish grace periods.  It used to > > > be very aggressive about forcing the scheduler to do otherwise-unneeded > > > context switches, which became a problem somewhere between v4.9 and v4.15. > > > I therefore reduced the number of such context switches, which in turn > > > caused KVM to tell RCU about quiescent states way too infrequently. > >  > > You talk about  > > commit bcbfdd01dce5556a952fae84ef16fd0f12525e7b > >     rcu: Make non-preemptive schedule be Tasks RCU quiescent state > >  > > correct? In fact, then whatever (properly sent) patch comes up should contain > > a fixes tag. > > Not that one, but this one is at least part of the "team": > > 28053bc72c0e5 ("rcu: Add long-term CPU kicking").  I might need to use > "git bisect" to find the most relevant commit...  :-/ Whichever commit we blame, I suspect the Fixes: tag wants to go on Paul's earlier 'Make need_resched() respond to urgent RCU-QS needs' patch. The rcu_kvm_enter() thing we're talking about now is actually addressing a problem which has existed for much longer — that with NO_HZ_FULL, a CPU might end up in guest mode for an indefinite period of time, with RCU waiting for it to return.