web-dev-qa-db-ja.com

PCIeカードが使用しているレーンの数を確認するにはどうすればよいですか?

マザーボード上のPCI Expressスロットは、接続されているレーンの数よりも広くすることができます。たとえば、マザーボードにはx8スロットがあり、x1レーンのみが接続されています。

一方、exのみを使用してカードを挿入できます。マザーボードのx16スロットへの4レーン。これらのx4レーンのみを使用するように交渉します。

実行中のシステムから、挿入されたPCIeカードが使用しているレーンの数を確認するにはどうすればよいですか?

33
silk

わかりました、lspciのマンページで最初の試行で見逃したようです。

注: 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-
36
silk

時にはそれはもう少し複雑になることがあります。

たとえば、4ポートGBitイーサネットアダプターには、PCIeスイッチが搭載されています。イーサネットアダプターが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オプションの過剰な詳細なしで、バス上のすべてのデバイスの下にリンクステータスが表示されます。

13
wjr