マザーボード上のPCI Expressスロットは、接続されているレーンの数よりも広くすることができます。たとえば、マザーボードにはx8スロットがあり、x1レーンのみが接続されています。
一方、exのみを使用してカードを挿入できます。マザーボードのx16スロットへの4レーン。これらのx4レーンのみを使用するように交渉します。
実行中のシステムから、挿入されたPCIeカードが使用しているレーンの数を確認するにはどうすればよいですか?
わかりました、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-
時にはそれはもう少し複雑になることがあります。
たとえば、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オプションの過剰な詳細なしで、バス上のすべてのデバイスの下にリンクステータスが表示されます。