cpuidle: Fix ct_idle_*() usage
authorPeter Zijlstra <peterz@infradead.org>
Thu, 12 Jan 2023 19:43:27 +0000 (20:43 +0100)
committerIngo Molnar <mingo@kernel.org>
Fri, 13 Jan 2023 10:48:15 +0000 (11:48 +0100)
commita01353cf1896ea5b8a7bbc5e2b2d38feed8b7aaa
treed481b825921d2e5f4431e3929454f0520ca017ce
parent0c5ffc3d7b15978c6b184938cd6b8af06e436424
cpuidle: Fix ct_idle_*() usage

The whole disable-RCU, enable-IRQS dance is very intricate since
changing IRQ state is traced, which depends on RCU.

Add two helpers for the cpuidle case that mirror the entry code:

  ct_cpuidle_enter()
  ct_cpuidle_exit()

And fix all the cases where the enter/exit dance was buggy.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Tony Lindgren <tony@atomide.com>
Tested-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20230112195540.130014793@infradead.org
15 files changed:
arch/arm/mach-imx/cpuidle-imx6q.c
arch/arm/mach-imx/cpuidle-imx6sx.c
arch/arm/mach-omap2/cpuidle34xx.c
arch/arm/mach-omap2/cpuidle44xx.c
drivers/acpi/processor_idle.c
drivers/cpuidle/cpuidle-big_little.c
drivers/cpuidle/cpuidle-mvebu-v7.c
drivers/cpuidle/cpuidle-psci.c
drivers/cpuidle/cpuidle-riscv-sbi.c
drivers/cpuidle/cpuidle-tegra.c
drivers/cpuidle/cpuidle.c
include/linux/clockchips.h
include/linux/cpuidle.h
kernel/sched/idle.c
kernel/time/tick-broadcast.c