ACK: [SRU][focal:linux-gcp][PATCH 00/17] lp:#2080324 - linux-gcp: Improve idle support
Jacob Martin
jacob.martin at canonical.com
Thu Sep 26 00:43:00 UTC 2024
On Wed, Sep 11, 2024 at 01:27:09AM -0300, Marcelo Henrique Cerri wrote:
> 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(-)
>
Acked-by: Jacob Martin <jacob.martin at canonical.com>
More information about the kernel-team
mailing list