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

Will Deacon will at kernel.org
Mon May 24 15:18:13 PDT 2021


Hi all,

This is version two of the series I posted last week:

  https://lore.kernel.org/r/20210520184705.10845-1-will@kernel.org

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.

Changes since v1 include:

  * Fixed module refcounting and use of clockevents_exchange_device()
  * Require CLOCK_EVT_FEAT_PERCPU for new wakeup per-cpu source
  * Fix transition to oneshot mode while idle
  * Tested on my x86 laptop

Cheers,

Will

Cc: Frederic Weisbecker <fweisbec at gmail.com>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Marc Zyngier <maz at kernel.org>
Cc: Lorenzo Colitti <lorenzo at google.com>
Cc: John Stultz <john.stultz at linaro.org>
Cc: Stephen Boyd <sboyd at kernel.org>
Cc: Mika Penttilä <mika.penttila at nextfour.com>
Cc: kernel-team at android.com

--->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 | 143 +++++++++++++++++++++++++++++++----
 kernel/time/tick-common.c    |   2 +-
 kernel/time/tick-internal.h  |   5 +-
 kernel/time/timer_list.c     |  10 ++-
 4 files changed, 140 insertions(+), 20 deletions(-)

-- 
2.31.1.818.g46aad6cb9e-goog




More information about the linux-arm-kernel mailing list