Как проверить, сколько линий используется картой PCIe?

30

Слоты PCI Express на материнской плате могут быть шире, чем количество подключенных линий. Например, материнская плата может иметь слот x8 только с подключенной линией x1.

С другой стороны, вы можете вставить карту, используя только для экс. 4 линии на слот x16 на материнской плате, и они будут договариваться об использовании только этих линий x4.

Как проверить из работающей системы, сколько линий используют вставленные карты PCIe?

шелк
источник

Ответы:

35

Хорошо, кажется, я пропустил это с первой попытки в lspcimanpages.

Примечание. Запустите команду от имени пользователя root / sudo, в противном случае будет пропущено много подробностей, включая вывод Lnk, показанный ниже.

lspci -vv отображает много информации, включая ширину ссылки:

01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GT] (rev a2) (prog-if 00 [VGA controller])
            [...]
            LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <512ns, L1 <1us
                    ClockPM- Surprise- LLActRep- BwNot-
            LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+
                    ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
            LnkSta: Speed 2.5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
шелк
источник
1
в вашем примере выходной текст имеет width x16и width x8. Я предполагаю, что это интерпретируется как: the link capacity is width x16а this device has negotiated width x8?
Тревор Бойд Смит
1
Да, я тоже так понимаю.
шелк,
То же, что и комментарий @ ʇsәɹoɈ к другому ответу; Используйте root / sudo
hbogert
11

Иногда это может быть немного сложнее.

Например, 4-портовые адаптеры GBit Ethernet имеют встроенный PCIe-коммутатор. Я попал в проблему, когда обнаружил, что Ethernet-адаптер подключен к x4, но является узким местом, когда встроенный переключатель pcie был подключен в x1 только к материнской плате.

См. Эту тему для решения проблемы: http://thread.gmane.org/gmane.linux.drivers.e1000.devel/15192/focus=15254

Чтобы понять связь с деревьями, сравните

sudo lspci -tv
sudo lspci -vv | grep -P "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9a-f]|LnkSta:"

В последней строке будет показано состояние соединения под каждым устройством на шине без подробностей о vv.

ВЕОЧП
источник
10
Примечание. При запуске от имени непривилегированного пользователя lspci не показывает статистику LnkCap / LnkSta / Width. Запустите его с sudo, чтобы увидеть их.
ɈsәɹoɈ