Currently when nohz full is active, the CPU 0 handles timekeeping on behalf of all other CPUs. This prevents it from ever entering in dynticks idle mode.
This patchset uses the RCU sysidle feature to allow that. The CPU 0 can know safely when to sleep and when to wake up, the sysidle code determines that and takes care of races along the way. git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git nohz/sysidle Thanks, Frederic --- Frederic Weisbecker (10): irq_work: Introduce void irq work nohz: Kick full dynticks timer targets with an empty IPI rcu: Kick full dynticks CPU on extended grace period with a void IRQ nohz: Appropriate timekeeper kick on sysidle break smp: Fast path check on IPI list nohz: Define meaningful symbol for nohz full timekeeper nohz: Enforce timekeeping on CPU 0 nohz: Fetch timekeeping max deferment only for timekeeper nohz: Switch nohz full timekeeper to dynticks idle on top of sysidle detection nohz: Warn on illegal timekeeper switch in nohz full include/linux/irq_work.h | 1 + kernel/irq_work.c | 21 +++++++++++++ kernel/rcu/tree_plugin.h | 10 ++++--- kernel/sched/core.c | 2 +- kernel/smp.c | 11 ++++++- kernel/time/tick-common.c | 11 ++++--- kernel/time/tick-internal.h | 8 +++++ kernel/time/tick-sched.c | 72 ++++++++++++++++++++++----------------------- 8 files changed, 88 insertions(+), 48 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/