ASPM
Jump to navigation
Jump to search
ASPM
ASPM (Active-State Power Management) is a power-saving feature in PCI Express (PCIe) that allows devices to enter low-power states when not actively transmitting data since CPIe Gen3. ASPM can impact performance due to the latency involved in exiting low-power states. Some devices may disable ASPM entirely or specifically L0s to ensure optimal performance, especially for devices with high bandwidth requirements[1]
ASPM state[2]
- L0s (Link State 0) - A low resume latency, energy saving “standby” / low-power state for PCIe devices. it can quickly resume operation with minimal delay
- L1 (Link State 1): Higher latency, lower power “standby” state that offers a greater degree of power saving compared to L0s. L1 is often implemented in mobile devices to maximize power savings
# example of ASPM status on Linux
$ sudo lspci -vvvs c1:00.0 | grep -i speed
LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <512ns, L1 <4us
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
ASPM in BIOS
BIOS settings allow you to configure ASPM, often with options like L0/L0s/L1/L0sL1.
For example, SMC X10SAE BIOS has following options
- L0 – All PCI Express transactions and other operations are enabled.
- L0s – A low resume latency, energy saving “standby” state.
- L1 – Higher latency, lower power “standby” state (optional).
- L0sL1 - Activate both L0s and L1 support.
ASPM in Kernel Param
You could enforce on grub to avoid using the "powersave" or the "default" policy by disabling aspm with the following parameter: pcie_aspm=off