aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/tick-common.c
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2021-05-24 23:18:16 +0100
committerThomas Gleixner <tglx@linutronix.de>2021-05-31 17:04:45 +0200
commitc94a8537df12708cc03da9120c3c3561ae744ce1 (patch)
treea3d59a3f9da19632708e5bdf3a29d2e0729ab4be /kernel/time/tick-common.c
parenttick/broadcast: Split __tick_broadcast_oneshot_control() into a helper (diff)
downloadlinux-dev-c94a8537df12708cc03da9120c3c3561ae744ce1.tar.xz
linux-dev-c94a8537df12708cc03da9120c3c3561ae744ce1.zip
tick/broadcast: Prefer per-cpu oneshot wakeup timers to broadcast
Some SoCs have two per-cpu timer implementations where the timer with the higher rating stops in deep idle (i.e. suffers from CLOCK_EVT_FEAT_C3STOP) but is otherwise preferable to the timer with the lower rating. In such a design, selecting the higher rated devices relies on a global broadcast timer and IPIs to wake up from deep idle states. To avoid the reliance on a global broadcast timer and also to reduce the overhead associated with the IPI wakeups, extend tick_install_broadcast_device() to manage per-cpu wakeup timers separately from the broadcast device. For now, these timers remain unused. Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20210524221818.15850-4-will@kernel.org
Diffstat (limited to 'kernel/time/tick-common.c')
-rw-r--r--kernel/time/tick-common.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
index e15bc0ef1912..d663249652ef 100644
--- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c
@@ -373,7 +373,7 @@ out_bc:
/*
* Can the new device be used as a broadcast device ?
*/
- tick_install_broadcast_device(newdev);
+ tick_install_broadcast_device(newdev, cpu);
}
/**