Linux 5.5 Provides Knob To Toggle ASPM Link States Individually - Better Power-Savings
ASPM can be a big boost to help power-savings on Linux laptops and desktops as shown by a prominent kernel regression a number of years ago. However, a number of Linux drivers are forced to disable Active State Power Management (ASPM) due to quirky/buggy hardware where it ends up not being sane to enable that power-saving feature by default. But with the Linux 5.5 kernel is support for toggling ASPM link states via sysfs as an easy-to-perform manner for achieving better power-savings with friendly devices.
The PCI changes for v5.5 don't contain many notable changes this round. But catching my attention was the introduction of new sysfs attributes for controlling ASPM link states.
This support is finally being added in 2019 to control ASPM link states via sysfs in dealing with the Realtek r8169 driver. Due to different combinations of motherboard chipsets and Realtek network chips causing problems when ASPM is enabled, the driver disables ASPM by default. But now thanks to this patch, ASPM can be more easily enabled by the end-user should their particular system not suffer from a bad combination of hardware. This in turn means better power-savings for systems not suffering from poor ASPM behavior.
Due to the many different chipset/NIC combinations out there, it isn't possible to provide a comprehensive white-list (or black-list of known bad configurations) but at least this link state knob via sysfs makes it possible to twist the ASPM state either way. While r8169 was the incentive for developer Heiner Kallweit to work on this patch, there are other network drivers / hardware in a similar boat that stand to benefit from this easy to adjust knob for their users.
Perhaps we'll see the likes of PowerTOP supporting this new sysfs attribute and integrate some sort of sanity test for safely enabling otherwise ASPM-disabled devices where safe.
See the patchwork for more details on this new support for Linux 5.5.
The PCI changes for v5.5 don't contain many notable changes this round. But catching my attention was the introduction of new sysfs attributes for controlling ASPM link states.
This support is finally being added in 2019 to control ASPM link states via sysfs in dealing with the Realtek r8169 driver. Due to different combinations of motherboard chipsets and Realtek network chips causing problems when ASPM is enabled, the driver disables ASPM by default. But now thanks to this patch, ASPM can be more easily enabled by the end-user should their particular system not suffer from a bad combination of hardware. This in turn means better power-savings for systems not suffering from poor ASPM behavior.
Due to the many different chipset/NIC combinations out there, it isn't possible to provide a comprehensive white-list (or black-list of known bad configurations) but at least this link state knob via sysfs makes it possible to twist the ASPM state either way. While r8169 was the incentive for developer Heiner Kallweit to work on this patch, there are other network drivers / hardware in a similar boat that stand to benefit from this easy to adjust knob for their users.
Perhaps we'll see the likes of PowerTOP supporting this new sysfs attribute and integrate some sort of sanity test for safely enabling otherwise ASPM-disabled devices where safe.
See the patchwork for more details on this new support for Linux 5.5.
3 Comments