• Frederic Weisbecker's avatar
    timers: Assert no next dyntick timer look-up while CPU is offline · 19b344a9
    Frederic Weisbecker authored
    The next timer (re-)evaluation, with the purpose of entering/updating
    the dyntick mode, can happen from 3 sites and none of them are relevant
    while the CPU is offline:
    
    1) The idle loop:
    	a) From the quick check helping the cpuidle governor to heuristically
    	   predict the best C-state.
    	b) While stopping the tick.
    
       But if the CPU is offline, the tick has been cancelled and there is
       consequently no need to further stop the tick.
    
    2) Remote expiry: when a CPU remotely expires global timers on behalf of
       another CPU, the latter target's next timer is re-evaluated
       afterwards. However remote expîry doesn't happen on offline CPUs.
    
    3) IRQ exit: on nohz_full mode, the tick is (re-)evaluated on IRQ exit.
       But full dynticks is disabled on offline CPUs.
    
    Therefore it is safe to assume that no next dyntick timer lookup can
    be performed on offline CPUs.
    
    Assert this expectation to report any surprise.
    Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20240225225508.11587-17-frederic@kernel.org
    19b344a9
timer.c 82.5 KB