APPLIED: [SRU][focal:linux-gcp][PATCH 00/17] lp:#2080324 - linux-gcp: Improve idle support

Magali Lemes magali.lemes at canonical.com
Fri Sep 27 12:13:47 UTC 2024


On 11/09/2024 01:27, 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(-)
> 

Applied to focal:linux-gcp/master-next. Thanks!


Magali



More information about the kernel-team mailing list