
Слоты PCI Express на материнской плате могут быть шире, чем количество подключенных линий. Например, материнская плата может иметь слот x8 с подключенной только линией x1.
С другой стороны, вы можете вставить карту, использующую, например, только 4 линии, в слот x16 на материнской плате, и она будет договариваться об использовании только этих линий x4.
Как проверить на работающей системе, сколько линий используют вставленные карты PCIe?
решение1
Ладно, похоже, я пропустил это с первой попытки в lspci
man-страницах.
Примечание:Запустите команду как 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-
решение2
Иногда все может быть немного сложнее.
Например, 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.
решение3
Я использую следующие команды. lspci -vv
обеспечивает подробный вывод. Он разбирается с помощью grep, чтобы увидеть только «Ширину» следующим образом:
lspci -vvv | egrep "0[0-9]:|Width\ "
03:00.0 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
pcilib: sysfs_read_vpd: read failed: Input/output error
LnkCap: Port #8, Speed 5GT/s, Width x8, ASPM L0s, Exit Latency L0s unlimited, L1 unlimited
LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
Обратите внимание на дваШирина х8строки выше.
Если LnkSta
(Link Status) меньше LnkCap
(Link Capability), он будет отображаться (downgraded)
рядом с Width. Это означает, что карта PCI способна на большее, чем может предоставить слот PCI.
Далее вы можете просмотреть отображение физической и электрической информации о порте PCI. Физический — это фактический размер слота на материнской плате. Электрический — это то, как слот подключен к чипсету. Некоторые материнские платы будут иметь физический слот x16, но использовать только линии x8.
dmidecode --type 9 | egrep "Usage|Type|Designation"
Designation: PCH SLOT1 PCI-E 3.0 X4(IN X8)
Type: x4 PCI Express 3 x8
Current Usage: Available
Designation
так производитель материнской платы сообщает СЛОТ.
Type
Это электрические и физические характеристики. (например, электрические линии x4, физический слот — x8).