** Description changed: 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 /proc/sched_debug or ps -ef | grep cppc_fie shows active cppc_fie threads. + 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.
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux-bluefield in Ubuntu. https://bugs.launchpad.net/bugs/2127016 Title: Disable CPPC FIE in Jammy kernel Status in linux-bluefield package in Ubuntu: New Bug description: 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. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-bluefield/+bug/2127016/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp

