Recently, it became known that the removal of some lines from the Linux code Kernel, can lead to better system performance as well as less power consumption. Active State Power Management, also known as (ASPM), is part of the Peripheral Component Interconnect Express (PCIe) doors, which limits energy consumption when system is in idle state. Except of the Windows, the Linux kernel also supports ASPM on PCI ports.
The discovery that ASPM wastes energy happened by accident when Kai-Heng Feng (its employee Canonical), creating a bug report for the deactivated ASPM L1 in the TI PCIe-to-PCI Bridge. While describing the bug in detail, Kai-Heng Feng also noted that disabling ASPM affects the Intel SoC to enter Deeper Package C-State, which leads the system to high power consumption.
Kai-Heng Feng also explains how Windows they always have ASPM L1 active for the device, as well as for the upstream bridge. Thus, the intel SoC reaches the PC8-PC10, thus saving a lot of energy. At the same time, however, Linux disables ASPM when downstream contains a bridge function, for example PCIe-to-PCI.
This has been the case since 2008, when Shaohua Li created a Patch, which added ASPM support to Linux. Kernel 2.6.26. For some unknown reason, however, he banned ASPM for the PCI bridge function.
Knowing the above problem, Kai-Heng Feng decided to remove the part of the code that prohibits the use of ASPM in ideal cases. The patch with the improvement of ASPM, it will be available on Linux 5.8, which may be released next month.
The new improved ASPM support is very important for users who use laptops with Linux-based operating systems, as they will notice a big difference in the performance of their device's battery. For this reason, Kai-Heng Feng recommends them users, upgrade the kernel at the earliest opportunity.