• Frederic Weisbecker's avatar
    nohz: Support nohz full remote kick · 3d36aebc
    Frederic Weisbecker authored
    Remotely kicking a full nohz CPU in order to make it re-evaluate its
    next tick is currently implemented using the scheduler IPI.
    
    However this bloats a scheduler fast path with an off-topic feature.
    The scheduler tick was abused here for its cool "callable
    anywhere/anytime" properties.
    
    But now that the irq work subsystem can queue remote callbacks, it's
    a perfect fit to safely queue IPIs when interrupts are disabled
    without worrying about concurrent callers.
    
    So lets implement remote kick on top of irq work. This is going to
    be used when a new event requires the next tick to be recalculated:
    more than 1 task competing on the CPU, timer armed, ...
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Kevin Hilman <khilman@linaro.org>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    3d36aebc
tick-sched.c 29.2 KB