[SRU][J:linux-bluefield][PATCH v1 0/1] Disable CPPC FIE in Jammy kernel

David Thompson davthompson at nvidia.com
Tue Oct 7 18:09:40 UTC 2025


BugLink: https://bugs.launchpad.net/bugs/2127016

SRU Justification:

[Impact]
On ARM platforms such as BlueField-3, enabling the CPPC Frequency-Invariance
Engine (FIE) spawns a background kernel thread (cppc_fie) that periodically
polls CPPC performance counters through the PCC channel. This behavior
significantly increases CPU utilization (2-11% as observed by top) even under
idle conditions.

This issue appears when firmware exposes CPPC capabilities (via _CPC and
PCCT tables) to the kernel-triggering the cppc_cpufreq driver to load. The
problem exists in kernels before v6.1 and is fixed upstream by:

Commit ae2df91 ("ACPI: CPPC: Disable FIE if registers in PCC regions")
https://github.com/torvalds/linux/commit/ae2df912d1a557a3548be83da20851ac55f42ab3

Without this fix, enabling FIE on systems (by enabling CONFIG_ACPI_CPPC_CPUFREQ_FIE)
where CPPC registers reside in PCC regions results in unnecessary and continuous
mailbox accesses, causing measurable CPU load increases.

[Fix]
Set CONFIG_ACPI_CPPC_CPUFREQ_FIE=n to disable the FIE kernel thread.
This avoids the high CPU utilization bug while retaining the core CPPC
functionality (real-time CPU frequency reporting via CONFIG_ACPI_CPPC_CPUFREQ).

[Test Case]
1. Boot a BlueField-3 (or similar ARM system) running kernel 5.15.x with CONFIG_ACPI_CPPC_CPUFREQ_FIE=y.
o Observe with top or mpstat that CPU utilization remains elevated (2-11%) even at idle.
o Verify that "ps -ef | grep cppc_fie" shows active cppc_fie threads.
2. Rebuild kernel with CONFIG_ACPI_CPPC_CPUFREQ_FIE=n.
o Reboot and confirm no cppc_fie kernel threads are running.
o Check that CPU utilization returns to baseline levels while
  /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq continues to report real-time frequency correctly.
This validates that disabling FIE eliminates the overhead but preserves the real-frequency reporting feature.

[Regression Potential]
Low.
FIE is an optional optimization that adjusts scaling responsiveness. Disabling
it only affects systems using PCC-based CPPC regions; others (with direct
register access) are unaffected. The main CPPC frequency control and reporting
remain fully functional.

David Thompson (1):
  UBUNTU: [Config] bluefield: disable CONFIG_ACPI_CPPC_CPUFREQ_FIE

 debian.bluefield/config/annotations | 1 +
 1 file changed, 1 insertion(+)

-- 
2.43.2




More information about the kernel-team mailing list