Messages in this thread | | | From | Frederic Weisbecker <> | Subject | [RFC PATCH 00/10] nohz: Support sysidle (and some more cleanups) | Date | Sat, 19 Jul 2014 02:44:11 +0200 |
| |
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(-)
| |