Messages in this thread | | | Date | Thu, 19 May 2022 23:27:50 +0200 | From | Peter Zijlstra <> | Subject | [RFC][PATCH 0/9] Rework cpuidle vs instrumentation |
| |
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(-)
| |