[PATCH 0/1][U/OEM-5.6] PCI: vmd: Enable ASPM if BIOS requests it

You-Sheng Yang vicamo.yang at canonical.com
Thu Jul 30 10:34:03 UTC 2020


BugLink: https://bugs.launchpad.net/bugs/1889384

[Impact]
ASPM of VMD devices is not automatically enabled even it's said capable
in its Link Capabilities Register.

  $ sudo lspci -vvn | grep -E '^(1|\s+LnkCtl:)'
  10000:e0:1d.0 0604: 8086:a0b0 (rev 20) (prog-if 00 [Normal decode])
    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
  10000:e1:00.0 0108: 1e0f:0001 (prog-if 02 [NVM Express])
    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+

This blocks system from entering PC10 and fails to meet E-Star
regulations.

[Fix]
A proposed patch in linux-pci mailing list to enable ASPM for all
children on the VMD bus.

[Test Case]
A simple command to grep current LnkCtl state:

  $ sudo lspci -vv | grep -E '^(1|\s+LnkCtl:)'

Run turbostat in the background and trigger long idle. turbostat should
give non-zero residency percentage of Pk%pc10 column.

[Regression Potential]
Low. BIOS has set Link Capabilities Register as supporting L1 on VMD
devices, and Windows driver on the same platform will enable ASPM when
loaded, but Linux doesn't. This would affect only devices should have
done so yet doesn't.

[Other Info]
Full VMD/RAID mode support targets oem-5.6 kernel and newer only.

Jon Derrick (1):
  PCI: vmd: Enable ASPM if BIOS requests it

 drivers/pci/controller/vmd.c |  9 ++++++++-
 drivers/pci/pcie/aspm.c      | 19 ++-----------------
 include/linux/pci.h          | 17 +++++++++++++++++
 3 files changed, 27 insertions(+), 18 deletions(-)

-- 
2.27.0




More information about the kernel-team mailing list