[SRU][focal:linux-gcp][PATCH 00/17] lp:#2080324 - linux-gcp: Improve idle support
Marcelo Henrique Cerri
marcelo.cerri at canonical.com
Wed Sep 11 04:27:09 UTC 2024
BugLink: https://bugs.launchpad.net/bugs/2080324
SRU justification:
[Impact]
Older Ubuntu kernels don't have support for some of the C-states
provided by newer HW. Google Cloud now offer new instances types (such
as the C4 series) based on Sapphire and Emerald Rapids with support to
C6. The lack of support for those more advance states can cause CPU
hogging with several side effects.
[Fix]
Back port support to the intel_idle driver for C6 C-state in Emerald
and Sapphire Rapids via MWAIT.
[Test Plan]
`cpupower idle-info` should report C6 as an available idle state and
the duration reported for the C6 should be constantly increasing.
[Where problems could occur]
Other platforms besides Emerald and Sapphire Rapids could be affected
by a regression. In this black listing the intel_idle driver should a
viable workaround until the problem is fixes.
[Other Info]
Bionic can be covered by changes landing to the 5.4 linux-gcp kernel,
however the kernel available in Xenial is already under ESM.
Some additional information about the patch set:
1. It was tested on a Google Cloud c4-standard-8 instance and
`cpupower idle-info` was able to report C6 support and usage.
2. Support for the preferred_cstates module parameter was skipped to
implify the Emerald Rapids back port.
3. C1E state is still marked as unusable. More patches would be needed
to support it.
4. AMX initialization was not ported, since the 5.4 kernel doesn't
support AMX.
5. 2 additional patches were included based on the Fixes: tags from the
necessary commits:
- intel_idle: Fix max_cstate for processor models without C-state tables
- cpuidle: Introduce cpuidle_driver_state_disabled() for driver quirks
-->8--
Artem Bityutskiy (2):
intel_idle: add SPR support
intel_idle: add Emerald Rapids Xeon support
Chen Yu (1):
intel_idle: Fix max_cstate for processor models without C-state tables
Marcelo Henrique Cerri (1):
UBUNTU: SAUCE: x86/cpu: Add Emerald Rapids CPU model number
Rafael J. Wysocki (12):
cpuidle: Consolidate disabled state checks
cpuidle: Introduce cpuidle_driver_state_disabled() for driver quirks
cpuidle: Drop disabled field from struct cpuidle_state
ACPI: processor: Export function to claim _CST control
ACPI: processor: Introduce acpi_processor_evaluate_cst()
ACPI: processor: Clean up acpi_processor_evaluate_cst()
ACPI: processor: Make ACPI_PROCESSOR_CSTATE depend on ACPI_PROCESSOR
ACPI: processor: Export acpi_processor_evaluate_cst()
intel_idle: Refactor intel_idle_cpuidle_driver_init()
intel_idle: Use ACPI _CST for processor models without C-state tables
cpuidle: Allow idle states to be disabled by default
intel_idle: Allow ACPI _CST to be used for selected known processors
Tony Luck (1):
x86/cpu: Add Sapphire Rapids CPU model number
.../ABI/testing/sysfs-devices-system-cpu | 6 +
Documentation/admin-guide/pm/cpuidle.rst | 3 +
arch/arm/mach-imx/cpuidle-imx6q.c | 4 +-
arch/arm/mach-tegra/cpuidle-tegra20.c | 2 +-
arch/sh/kernel/cpu/shmobile/cpuidle.c | 8 +-
arch/x86/include/asm/intel-family.h | 4 +
drivers/acpi/Kconfig | 1 +
drivers/acpi/acpi_processor.c | 182 ++++++++++
drivers/acpi/processor_idle.c | 174 +--------
drivers/cpuidle/cpuidle-powernv.c | 7 +-
drivers/cpuidle/cpuidle.c | 28 +-
drivers/cpuidle/driver.c | 28 ++
drivers/cpuidle/governors/ladder.c | 4 +-
drivers/cpuidle/governors/menu.c | 8 +-
drivers/cpuidle/governors/teo.c | 5 +-
drivers/cpuidle/poll_state.c | 1 -
drivers/cpuidle/sysfs.c | 61 ++--
drivers/idle/intel_idle.c | 329 +++++++++++++++---
include/linux/acpi.h | 15 +
include/linux/cpuidle.h | 10 +-
20 files changed, 611 insertions(+), 269 deletions(-)
--
2.34.1
More information about the kernel-team
mailing list