Jak sprawdzić, ile pasów jest używanych przez kartę PCIe?

30

Gniazda PCI Express na płycie głównej mogą być szersze niż liczba połączonych linii. Na przykład płyta główna może mieć gniazdo x8 z podłączonym tylko linią x1.

Z drugiej strony możesz włożyć kartę używając tylko dla np. 4 linie do gniazda x16 na płycie głównej, a oni będą negocjować użycie tylko tych linii x4.

Jak sprawdzić z działającego systemu, ile pasów jest używanych przez włożone karty PCIe?

jedwab
źródło

Odpowiedzi:

35

Ok, wygląda na to, że tęskniłem za pierwszym razem na lspcistronach podręcznika.

Uwaga: Uruchom komendę jako root / sudo inaczej wiele szczegółów jest pominięta w tym wyjściu LNK poniżej.

lspci -vv wyświetla wiele informacji, w tym szerokość łącza:

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-
jedwab
źródło
1
w twoim przykładzie tekst wyjściowy zawiera zarówno width x16i width x8. Zakładam, że jest to interpretowane jako: the link capacity is width x16i this device has negotiated width x8?
Trevor Boyd Smith
1
Tak też to rozumiem.
jedwab
Taki sam jak komentarz @ ʇsәɹoɈ do innej odpowiedzi; Użyj root / sudo
hbogert
11

Czasami może to być nieco bardziej skomplikowane.

Na przykład 4-portowe karty Ethernet GBit są wyposażone w przełącznik PCIe. Wpadłem w problem, w którym znalazłem adapter Ethernet podłączony do x4, ale wąskie gardło w górę, gdy przełącznik pcie na pokładzie był podłączony w x1 tylko do płyty głównej.

Zobacz ten wątek do wydania: http://thread.gmane.org/gmane.linux.drivers.e1000.devel/15192/focus=15254

Aby poznać łączność z drzewami, porównaj widok

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

Ostatnia linia pokaże status łącza pod każdym urządzeniem w magistrali bez przytłaczających szczegółów opcji vv.

wjr
źródło
10
Uwaga: Uruchomiony jako użytkownik nieuprzywilejowany, lspci nie wyświetla statystyk LnkCap / LnkSta / Width. Uruchom go za pomocą sudo, aby je zobaczyć.
ʇsәɹoɈ