[RFC][PATCH 0/9] Rework cpuidle vs instrumentation

From: Peter Zijlstra
Date: Thu May 19 2022 - 17:41:42 EST


Hi,

Most of these patches (with some obvious exceptions) stem from the period when
we did the entry rewrite. I might even have posted some of them, but they
landed on the floor and went unloved for a while.

Luckily, Frederic added a comment in his context tracking rework that made me
remember these.

They build and boot x86_64. Be sure to build with DEBUG_ENTRY enabled to find
noinstr violations -- I fixed all I found, but I didn't do allyesconfig builds.

Please have a look.

git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/idle

---
arch/alpha/kernel/process.c | 1 -
arch/arc/kernel/process.c | 3 ++
arch/arm/kernel/process.c | 1 -
arch/arm/mach-gemini/board-dt.c | 3 +-
arch/arm/mach-imx/cpuidle-imx6q.c | 5 +--
arch/arm64/kernel/idle.c | 1 -
arch/csky/kernel/process.c | 1 -
arch/csky/kernel/smp.c | 2 +-
arch/h8300/kernel/process.c | 1 +
arch/hexagon/kernel/process.c | 1 -
arch/ia64/kernel/process.c | 1 +
arch/microblaze/kernel/process.c | 1 -
arch/mips/kernel/idle.c | 8 ++---
arch/nios2/kernel/process.c | 1 -
arch/openrisc/kernel/process.c | 1 +
arch/parisc/kernel/process.c | 2 --
arch/powerpc/kernel/idle.c | 5 ++-
arch/riscv/kernel/process.c | 1 -
arch/s390/kernel/idle.c | 1 -
arch/sh/kernel/idle.c | 1 +
arch/sparc/kernel/leon_pmc.c | 4 +++
arch/sparc/kernel/process_32.c | 1 -
arch/sparc/kernel/process_64.c | 3 +-
arch/um/kernel/process.c | 1 -
arch/x86/coco/tdx/tdx.c | 3 ++
arch/x86/events/amd/brs.c | 13 +++-----
arch/x86/include/asm/irqflags.h | 11 +++----
arch/x86/include/asm/mwait.h | 2 +-
arch/x86/kernel/process.c | 64 +++++++++++++++++++--------------------
arch/xtensa/kernel/process.c | 1 +
drivers/acpi/processor_idle.c | 42 ++++++++++++++-----------
drivers/cpuidle/cpuidle.c | 21 +++++++------
drivers/cpuidle/poll_state.c | 6 +++-
include/linux/compiler_types.h | 8 +++--
include/linux/cpu.h | 3 --
include/linux/sched/idle.h | 29 ++++++++++++++++++
kernel/rcu/tree.c | 9 ++----
kernel/sched/idle.c | 47 ++++++++--------------------
kernel/time/tick-broadcast.c | 2 +-
tools/objtool/check.c | 15 ++++++++-
40 files changed, 176 insertions(+), 150 deletions(-)