[PATCH 0/5] tick/broadcast: Allow per-cpu timers to be used instead of broadcast

From: Will Deacon
Date: Thu May 20 2021 - 14:47:29 EST


Hi all,

This patch series adds support for hardware where the per-cpu tick timer
cannot wake up from deep idle states (i.e. CLOCK_EVT_FEAT_C3STOP is set)
yet there is a secondary per-cpu timer which is generally less preferable
(i.e. slow to access) yet capable of delivering the wakeup.

The meat and potatoes are in patches 3 and 4, but since I've not hacked
on this part of the kernel before I would appreciate feedback on any of
the changes I'm proposing.

Cheers,

Will

Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: Lorenzo Colitti <lorenzo@xxxxxxxxxx>
Cc: John Stultz <john.stultz@xxxxxxxxxx>
Cc: Stephen Boyd <sboyd@xxxxxxxxxx>
Cc: kernel-team@xxxxxxxxxxx

--->8

Will Deacon (5):
tick/broadcast: Drop unneeded CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
guard
tick/broadcast: Split __tick_broadcast_oneshot_control() into a helper
tick/broadcast: Prefer per-cpu oneshot wakeup timers to broadcast
tick/broadcast: Program wakeup timer when entering idle if required
timer_list: Print name of per-cpu wakeup device

kernel/time/tick-broadcast.c | 135 ++++++++++++++++++++++++++++++-----
kernel/time/tick-common.c | 2 +-
kernel/time/tick-internal.h | 5 +-
kernel/time/timer_list.c | 11 ++-
4 files changed, 133 insertions(+), 20 deletions(-)

--
2.31.1.818.g46aad6cb9e-goog