[PATCH 0/7] cpuidle: Handle TIF_NR_POLLING on behalf of polling idle states

From: Frederic Weisbecker
Date: Fri Nov 24 2023 - 17:32:45 EST


The TIF_NR_POLLING handling against polling idle states (mwait and also
software polling) is a bit messy, with quite some wasted cycles spent
on useless atomic operations. This is a try to consolidate this state
handling from the cpuidle core.

Frederic Weisbecker (4):
x86: Add a comment about the "magic" behind shadow sti before mwait
cpuidle: Remove unnecessary current_clr_polling_and_test() from
haltpoll
cpuidle: s/CPUIDLE_FLAG_POLLING/CPUIDLE_FLAG_POLLING_SOFT
cpuidle: Handle TIF_NR_POLLING on behalf of software polling idle
states

Peter Zijlstra (3):
x86: Fix CPUIDLE_FLAG_IRQ_ENABLE leaking timer reprogram
cpuidle: Introduce CPUIDLE_FLAG_POLLING_HARD
cpuidle: Handle TIF_NR_POLLING on behalf of CPUIDLE_FLAG_POLLING_HARD
states

Documentation/driver-api/pm/cpuidle.rst | 2 +-
arch/x86/include/asm/mwait.h | 23 +++++++++++---
drivers/acpi/processor_idle.c | 3 ++
drivers/cpuidle/cpuidle-haltpoll.c | 5 +---
drivers/cpuidle/cpuidle-powernv.c | 12 +-------
drivers/cpuidle/cpuidle-pseries.c | 15 ++--------
drivers/cpuidle/cpuidle.c | 22 +++++++++++++-
drivers/cpuidle/governors/ladder.c | 4 +--
drivers/cpuidle/governors/menu.c | 8 ++---
drivers/cpuidle/governors/teo.c | 8 ++---
drivers/cpuidle/poll_state.c | 32 ++++++++------------
drivers/idle/intel_idle.c | 24 +++++++--------
include/linux/cpuidle.h | 3 +-
include/linux/sched/idle.h | 7 ++++-
kernel/sched/idle.c | 40 +++++++++----------------
15 files changed, 104 insertions(+), 104 deletions(-)

--
2.42.1