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

Peter Zijlstra posted 9 patches 3 years, 11 months ago
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(-)
[RFC][PATCH 0/9] Rework cpuidle vs instrumentation
Posted by Peter Zijlstra 3 years, 11 months ago
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(-)