diff options
| author | Thomas Gleixner <[email protected]> | 2017-12-27 20:37:25 +0000 |
|---|---|---|
| committer | Thomas Gleixner <[email protected]> | 2017-12-29 22:13:09 +0000 |
| commit | 26456f87aca7157c057de65c9414b37f1ab881d1 (patch) | |
| tree | fd5e08429f5b554a8403aea730495654eaa4a23f /lib/timerqueue.c | |
| parent | timers: Use deferrable base independent of base::nohz_active (diff) | |
| download | kernel-26456f87aca7157c057de65c9414b37f1ab881d1.tar.gz kernel-26456f87aca7157c057de65c9414b37f1ab881d1.zip | |
timers: Reinitialize per cpu bases on hotplug
The timer wheel bases are not (re)initialized on CPU hotplug. That leaves
them with a potentially stale clk and next_expiry valuem, which can cause
trouble then the CPU is plugged.
Add a prepare callback which forwards the clock, sets next_expiry to far in
the future and reset the control flags to a known state.
Set base->must_forward_clk so the first timer which is queued will try to
forward the clock to current jiffies.
Fixes: 500462a9de65 ("timers: Switch to a non-cascading wheel")
Reported-by: Paul E. McKenney <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Sebastian Siewior <[email protected]>
Cc: Anna-Maria Gleixner <[email protected]>
Cc: [email protected]
Link: https://lkml.kernel.org/r/alpine.DEB.2.20.1712272152200.2431@nanos
Diffstat (limited to 'lib/timerqueue.c')
0 files changed, 0 insertions, 0 deletions
