pcitool - 割り込み経路指定ツール
/usr/sbin/pcitool -h
x86:
/usr/sbin/pcitool pci@unit-address -i cpu#,ino# | all [-r [-c] | -w cpu# [-g] ] [-v] [-q]
SPARC:
/usr/sbin/pcitool pci@unit-address -i ino# | all [-r [-c] | -w cpu# [-g] ] [-v] [-q]
/usr/sbin/pcitool pci@unit-address -m msi# | all [-r [-c] | -w cpu# [-g] ] [-v] [-q]
PCItool は、割り込み経路指定情報の取得および設定機能を提供する低レベルツールです。
pcitool –i コマンドは、指定したネクサス上の INO に関するデバイスおよび CPU 経路指定情報を表示し、指定した INO または INO グループを、指定した CPU へ再経路指定できます。
SPARC プラットフォームでは、INO は割り込みモンドに対応付けられ、1 つまたは複数の MSI/X が 1 つの INO に対応付けられます。したがって、INO と MSI/X は別々に再ターゲット化できます。–i オプションを使用して、指定した INO を取得または再経路指定します。MSI/X の場合は –m オプションを使用します。
cpu# の指定は、x86 プラットフォーム上で使用できます。ino# と組み合わせた場合、これは排他的なベクトルを識別します。cpu# 引数は、SPARC プラットフォームではサポートされません。
割り込み情報にアクセスするには、ユーザーはすべての特権を保有している必要があります。一般ユーザーは、su(1M) を実行して root になるか、または user_attr ファイルで「Maintenance and Repair」権利プロファイルが与えられている場合に、割り込み情報にアクセスできます。user_attr(4) および rbac(5) を参照してください。
サポートしているオプションは、次のとおりです。
コマンドの使用法を表示します。
エラーはメッセージとして表示されません。ただし、pcitool は、引き続き UNIX エラーコードを返します。
指定したネクサスの INO について、デバイスおよび CPU 経路指定情報を表示します。表示される INO ごとに、各デバイスのデバイスパスとインスタンス番号が表示されます。一部のプラットフォームでは、ルートコンプレックス専用の割り込みは、そのパス名に付加された文字列 (Internal) で示されます。
–c を付けると、割り込みコントローラ情報をダンプします。
コマンド行で –r も –w も指定されない場合、–r が指定されたものとみなされます。「使用例」を参照してください。
詳細情報を出力します。
指定した INO または MSI/X を、指定した CPU に経路指定します。新しい経路指定情報と元の経路指定情報を表示します。INO または MSI/X を指定する必要があります。
一部のプラットフォーム (x86 など) では、単一の機能の複数の MSI 割り込みは一緒に再経路指定する必要があります。これを行うには –g を使用します。–g オプションは、サポート対象のプラットフォームでのみ、MSI 割り込みのグループにかぎり有効です (1 の「グループ」は受け入れられます)。–g を使用する場合、指定するベクトルは、グループの中でもっとも小さい番号のベクトルである必要があります。グループのサイズは内部で決定されます。「使用例」を参照してください。
/pci@0,0 のすべての INO を表示するコマンドは次のとおりです。
# pcitool /pci@0,0 -i all使用例 2 特定の INO の出力を表示する
ルート /pci@0,0 の INO 0x0,0x21 を表示するコマンドは、x86 プラットフォームと SPARC プラットフォームでは若干異なります。
x86 プラットフォームの場合
# pcitool /pci@0,0 -i 0,21 0x0,0x21: mpt 0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2
SPARC プラットフォームの場合
# pcitool /pci@0,0 -i 21 0x0,0x21: mpt 0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2
前述の出力は一例であり、実際の出力とは異なる場合があります。
使用例 3 特定の MSI の出力を表示するルート /pci@0,0 の MSI 0x1 を表示するコマンドを、出力例とともに次に示します。
# pcitool /pci@0,0 -m 0x1 0x0,0x1: pcieb 0 /pci@7b,0/pci10de,5d@e使用例 4 ある CPU から別の CPU に INO を再経路指定する
CPU 0 から CPU 1 に INO 21 を正しく再経路指定すると、次に示す出力が生成されます。
x86 プラットフォームの場合
# pcitool /pci@0,0 -i 0,21 -w 1 0x0,0x21 -> 0x1,0x20
SPARC プラットフォームの場合
# pcitool /pci@0,0 -i 21 -w 1 0x0,0x21 -> 0x1,0x20使用例 5 ある CPU から別の CPU に MSI を再経路指定する
CPU 1 から CPU 0 に MSI 1 を正しく再経路指定すると、次に示す出力が生成されます。
# pcitool /pci@0,0 -m 1 -w 0 0x1,0x1 -> 0x0,0x1使用例 6 INO のグループを再経路指定する
CPU 0 から CPU 1 に 24 から始まる INO のグループを正しく再経路指定すると、次に示す出力が生成されます。
x86 プラットフォームの場合
# pcitool /pci@0,0 -i 3,24 -w 1 -g 0x3,0x24 => 0x1,0x22
SPARC プラットフォームの場合
# pcitool /pci@0,0 -i 24 -w 1 -g 0x3,0x24 => 0x1,0x22
エラーなし。
範囲外、整列エラー、またはそのほかの無効な引数が渡されました。
新しい CPU に割り込みを変更する前に、保留中の割り込みが処理されるのを待機しているときにタイムアウトが発生しました。
I/O エラーが発生しました。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
su(1M), pci(4), user_attr(4), attributes(5), rbac(5)
PCI 仕様 (www.pcisig.org から入手可能)
すべての値は 16 進数で入力します。
すべてのコマンドが全プラットフォームに適用できるわけではありません。