¿Cómo verificar cuántos carriles utiliza la tarjeta PCIe?

30

Las ranuras PCI Express en la placa base pueden ser más anchas que la cantidad de carriles conectados. Por ejemplo, una placa base puede tener una ranura x8 con solo un carril x1 conectado.

Por otro lado, puede insertar una tarjeta usando solo por ej. 4 carriles a una ranura x16 en la placa base, y negociarán usar solo esos carriles x4.

¿Cómo verificar desde el sistema en ejecución cuántos carriles usan las tarjetas PCIe insertadas?

seda
fuente

Respuestas:

35

Ok, parece que me lo perdí en el primer intento en las lspcipáginas de manual.

Nota: Ejecute el comando como root / sudo; de lo contrario, se omiten muchos detalles, incluida la salida Lnk que se muestra a continuación.

lspci -vv muestra mucha información, incluido el ancho del enlace:

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-
seda
fuente
1
en su ejemplo, el texto de salida tiene ambos width x16y width x8. Supongo que esto se interpreta como: the link capacity is width x16y this device has negotiated width x8?
Trevor Boyd Smith
1
Sí, así es como lo entiendo también.
seda
Igual que el comentario de @ ʇsәɹoɈ en otra respuesta; Usar root / sudo
hbogert
11

A veces puede ser un poco más complicado.

Por ejemplo, los adaptadores Ethernet de 4 puertos GBit tienen un conmutador PCIe integrado. Me encontré con un problema en el que encontré el adaptador Ethernet conectado a x4, pero un cuello de botella aguas arriba cuando el conmutador pcie integrado estaba conectado a x1 solo a la placa base.

Vea este hilo para el problema: http://thread.gmane.org/gmane.linux.drivers.e1000.devel/15192/focus=15254

Para conocer la conectividad del árbol, compare la vista de

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

La última línea le mostrará el estado del enlace debajo de cada dispositivo en el bus sin los detalles abrumadores de la opción vv.

wjr
fuente
10
Nota: Cuando se ejecuta como un usuario sin privilegios, lspci no muestra las estadísticas LnkCap / LnkSta / Width. Ejecútalo con sudo para verlos.
ɈsәɹoɈ