Wie kann ich überprüfen, wie viele Lanes von der PCIe-Karte verwendet werden?

Wie kann ich überprüfen, wie viele Lanes von der PCIe-Karte verwendet werden?

PCI-Express-Steckplätze auf der Hauptplatine können breiter sein als die Anzahl der angeschlossenen Lanes. Eine Hauptplatine kann beispielsweise einen x8-Steckplatz haben, an den nur eine x1-Lane angeschlossen ist.

Andererseits können Sie eine Karte, die beispielsweise nur 4 Lanes verwendet, in einen x16-Steckplatz auf der Hauptplatine einstecken, und das System verhandelt, nur diese x4 Lanes zu verwenden.

Wie kann ich im laufenden System überprüfen, wie viele Lanes von den eingesteckten PCIe-Karten genutzt werden?

Antwort1

Ok, anscheinend habe ich es beim ersten Versuch in lspciden Manpages übersehen.

Notiz:Führen Sie den Befehl als root/sudo aus, da sonst viele Details ausgelassen werden, einschließlich der unten gezeigten Lnk-Ausgabe.

lspci -vvzeigt viele Informationen an, einschließlich der Linkbreite:

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-

Antwort2

Manchmal kann es etwas komplizierter sein.

Beispielsweise verfügen 4-Port-GBit-Ethernet-Adapter über einen integrierten PCIe-Switch. Ich bin auf ein Problem gestoßen, bei dem der Ethernet-Adapter an x4 angeschlossen war, es aber einen Engpass im Upstream gab, wenn der integrierte PCIe-Switch nur an x1 mit dem Motherboard verbunden war.

Informationen zum Problem finden Sie in diesem Thread:http://thread.gmane.org/gmane.linux.drivers.e1000.devel/15192/focus=15254

Um einen Eindruck von der Baumkonnektivität zu bekommen, vergleichen Sie die Ansicht von

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

Die letzte Zeile zeigt Ihnen den Verbindungsstatus unter jedem Gerät im Bus, ohne die überwältigenden Details der vv-Option.

Antwort3

Ich verwende die folgenden Befehle. lspci -vvliefert eine ausführliche Ausgabe. Es wird mit grep analysiert, um nur „Breite“ wie folgt anzuzeigen:

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-

Beachten Sie die beidenBreite x8Zeilen oben.

Wenn LnkSta(Verbindungsstatus) kleiner als LnkCap(Verbindungskapazität) ist, wird dies (downgraded)neben der Breite angezeigt. Dies bedeutet, dass die PCI-Karte mehr leisten kann, als der PCI-Steckplatz bereitstellen kann.

Als Nächstes können Sie die physischen und elektrischen PCI-Port-Informationen anzeigen. Physisch ist die tatsächliche Steckplatzgröße auf dem Motherboard. Elektrisch ist die Art und Weise, wie der Steckplatz mit dem Chipsatz verdrahtet ist. Einige Motherboards haben einen physischen x16-Steckplatz, verwenden aber nur x8-Lanes.

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

Designationist die Art und Weise, wie der Motherboard-Hersteller den SLOT angibt. Typesind elektrische und physikalische Eigenschaften. (z. B. elektrische x4-Lanes, physikalischer Steckplatz ist x8).

verwandte Informationen