• Frederic Weisbecker's avatar
    nohz: Make nohz API agnostic against idle ticks cputime accounting · 2ac0d98f
    Frederic Weisbecker authored
    When the timer tick fires, it accounts the new jiffy as either part
    of system, user or idle time. This is how we record the cputime
    statistics.
    
    But when the tick is stopped from the idle task, we still need
    to record the number of jiffies spent tickless until we restart
    the tick and fall back to traditional tick-based cputime accounting.
    
    To do this, we take a snapshot of jiffies when the tick is stopped
    and compute the difference against the new value of jiffies when
    the tick is restarted. Then we account this whole difference to
    the idle cputime.
    
    However we are preparing to be able to stop the tick from other places
    than idle. So this idle time accounting needs to be performed from
    the callers of nohz APIs, not from the nohz APIs themselves because
    we now want them to be agnostic against places that stop/restart tick.
    
    Therefore, we pull the tickless idle time accounting out of generic
    nohz helpers up to idle entry/exit callers.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Alessio Igor Bogani <abogani@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Avi Kivity <avi@redhat.com>
    Cc: Chris Metcalf <cmetcalf@tilera.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
    Cc: Geoff Levand <geoff@infradead.org>
    Cc: Gilad Ben Yossef <gilad@benyossef.com>
    Cc: Hakan Akkan <hakanakkan@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Kevin Hilman <khilman@ti.com>
    Cc: Max Krasnyansky <maxk@qualcomm.com>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephen Hemminger <shemminger@vyatta.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Sven-Thorsten Dietrich <thebigcorporation@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    2ac0d98f
tick-sched.c 23.7 KB