[PATCH tip/core/rcu 0/12] NO_HZ fixes for v5.5

Paul E. McKenney
2019-10-03T01:38:38Z

Hello!

This series contains various fixes for NO_HZ and NO_HZ_FULL problems,
including re-enabling the tick during long-term kernel-mode execution.

1. Add TICK_DEP_BIT_RCU (which allows RCU-specific tick re-enabling),
courtesy of Frederic Weisbecker.

2. Export tick start/stop functions for rcutorture.

3. Force on tick when invoking lots of callbacks.

4. Force on tick for rcutorture readers and callback flooders.

5. Provide RCU quiescent state in multi_cpu_stop().

6. Make CPU-hotplug removal operations enable tick.

7. Use {READ,WRITE)_ONCE() for multi_cpu_stop() ->state.

8. Force tick on for nohz_full CPUs not reaching quiescent states.

9. Force nohz_full tick on upon irq enter instead of exit.

10. Reset CPU hints when reporting a quiescent state, courtesy of
Joel Fernandes.

11. Confine ->core_needs_qs accesses to the corresponding CPU.

12. Make kernel-mode nohz_full CPUs invoke the RCU core processing.

Thanx, Paul

------------------------------------------------------------------------

include/linux/rcutree.h | 1
include/linux/tick.h | 7 ++
include/trace/events/timer.h | 3 -
kernel/rcu/rcutorture.c | 20 +++++---
kernel/rcu/tree.c | 105 ++++++++++++++++++++++++++++++-------------
kernel/rcu/tree.h | 1
kernel/stop_machine.c | 7 +-
kernel/time/tick-sched.c | 11 ++++
8 files changed, 114 insertions(+), 41 deletions(-)