AMD's new Dynamic Energy Performance Preference (EPP) feature, designed to optimize power efficiency based on AC/DC power states, is experiencing performance problems in Linux 7.1, leading to a temporary removal of its default enablement.
AMD's Dynamic Energy Performance Preference (EPP) feature, one of the new AMD P-State enhancements in Linux 7.1, is encountering unexpected performance issues that have prompted kernel developers to temporarily disable its default enablement. The feature, designed to automatically adjust performance profiles based on whether a Ryzen laptop is running on AC or DC power, has been causing some performance regressions that need to be addressed before it can be safely enabled by default.
Dynamic EPP represents an interesting approach to power management for AMD Ryzen systems. The feature autonomously controls EPP values based on power state transitions, plug-in/out events, and other factors like the ACPI Platform Profile. Unlike manual EPP control, the kernel maintains full control over the EPP mode in dynamic mode, blocking manual writes to the EPP interface for the AMD P-State driver.
The performance issues with Dynamic EPP were significant enough to warrant immediate action. As noted in the patch message from kernel developers: "There are some performance issues being identified by dynamic EPP and we don't want to have distributions turning it on by default exposing them to users at this time."
In response, a patch has been submitted to drop the Kconfig build option that would have enabled Dynamic EPP by default. This means that distributions won't automatically enable the feature when building kernels with the AMD P-State driver support.
For users who specifically want to test or use Dynamic EPP despite the known issues, it can still be manually enabled using the amd_pstate.dynamic_epp=1 module parameter. This allows for testing and provides a path forward for users who understand the potential performance implications.
The patch, along with other Dynamic EPP related fixes, has been submitted to the Linux power management subsystem's "fixes" queue. These additional improvements include better error handling, allowing writes to dynamic_epp when the state isn't modified, and other refinements to the feature's behavior.
The timing of these fixes is particularly important as they're being prepared for inclusion in Linux 7.1, which is currently in its development cycle. The hope among kernel developers is that Dynamic EPP will be in better shape for restoring the Kconfig default option by the time of the Linux v7.2 merge window next month.
This situation highlights the challenges of implementing sophisticated power management features in Linux. While Dynamic EPP represents an important step toward more intelligent power management for AMD systems, it also demonstrates the need for thorough testing and validation before such features can be considered stable enough for default enablement.
For users running Linux 7.1 on AMD Ryzen systems, this means that the traditional power management behavior will remain in place unless they explicitly choose to test Dynamic EPP with the module parameter. It's a conservative approach that prioritizes system stability over experimental features, which aligns with the Linux kernel's general philosophy of preferring stability over unproven innovations.
The broader context here is the ongoing evolution of CPU power management in Linux, particularly for AMD processors. Features like P-State and now Dynamic EPP represent attempts to create more granular and intelligent power management that can adapt to different usage scenarios without requiring manual intervention from users.
As Linux continues to develop better power management capabilities, we can expect to see more refinements to these features in future kernel versions. The current issues with Dynamic EPP, while unfortunate, are a normal part of the development process and should result in a more robust implementation in the long run.
For those interested in following the development of Dynamic EPP, the patches have been submitted to the Linux kernel mailing list and can be tracked through the official Linux kernel development process. The Linux kernel power management subsystem is the primary forum for discussions and updates on these features.

Comments
Please log in or register to join the discussion