在 Linux 上强制重新协商 PCIe 速度

And*_*ner 9 linux rhel pci

我正在使用 PCIe Gen 3 卡,但它们似乎不时回退到 PCIe 1 或 2 速度(根据 lspci 并通过吞吐量观察)。

在大多数情况下,重新启动/重启机器时,速度会恢复到完整的 PCIe Gen 3 速度。

是否有一种侵入性较小的方法来强制在例如 RHEL6 上重新协商 PCI 链接速度(试图将其恢复到 PCI Gen 3)?

小智 4

您可以在此文件上检查您的 PCIe 能源策略:

# cat /sys/module/pcie_aspm/parameters/policy
Run Code Online (Sandbox Code Playgroud)

由于 Gen3 通过 ASPM(活动状态电源管理)进行电源管理非常简单,这可能是总线问题的根本原因:吞吐量较低,因此模块降低了速度,但在以下情况下忘记再次增加速度:需要(如果需要)。您可以通过使用以下参数禁用 aspm 来强制 grub 以避免使用“powersave”或“默认”策略:

pcie_aspm=off
Run Code Online (Sandbox Code Playgroud)

仅在一个内核上测试这一点,并将此选项附加到/boot/grub/grub.conf默认引导 Linux 的“kernel”行上。从 Red Hat 文档中提取的 grub 配置示例:

default=0 
timeout=10 
splashimage=(hd0,0)/grub/splash.xpm.gz 
hiddenmenu 
title Red Hat Enterprise Linux Server (2.6.18-2.el5PAE)         
root (hd0,0)         
kernel /boot/vmlinuz-2.6.18-2.el5PAE ro root=LABEL=/1 rhgb quiet pcie_aspm=off      
initrd /boot/initrd-2.6.18-2.el5PAE.img
Run Code Online (Sandbox Code Playgroud)

  • 感谢你的回答 !事实上,最终证明是PCI卡在PCI总线上的数据传输存在问题,制造商通过固件升级修复了该问题。 (2认同)
  • 我们在工作中的 HBA(brocade)也遇到了类似的问题,而且这也是固件问题:) (2认同)