ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
SR-IOV 機能は、物理機能 (PF) ドライバと仮想機能 (VF) ドライバから構成されます。次の各セクションでは、PF ドライバと VF ドライバ、および必要なデバイス構成の詳細について説明します。
SR-IOV デバイスの PF ドライバは、SR-IOV 対応デバイスの物理機能 (PF) を管理するために使用されます。SR-IOV 機能をサポートする PCI 機能については、SR-IOV 仕様で規定されています。PF は SR-IOV 機能構造を含んでおり、SR-IOV の機能を管理するために使用されます。PF は完全な機能を備えた PCIe 機能であり、ほかの PCIe デバイスと同様に発見、管理、および操作を行えます。PF は完全な構成リソースを備えているため、PCIe デバイスの構成や制御に使用できます。PF ドライバが示す特性は次のとおりです。
ルートドメインでのみ表示されます
データ移動機能を備えている場合も備えていない場合もあります。PF ドライバは SR-IOV モードでも機能すべきです。
Oracle Solaris IOV フレームワークで提供されている API 経由で SR-IOV 機能の有効化と無効化を制御します。
ある特定の PF で構成される VF の数は、システム管理者によって決定されます。この数は、Sparc OVM プラットフォームではマシン記述子 (MD) 内に、基本的な環境では構成ファイル内に、それぞれ定義されます。
PF ドライバは、接続段階で VF を有効化するために、DDI インタフェース経由で Oracle Solaris IOV フレームワークを呼び出します。接続時に PF ドライバが VF を有効化しなかった場合、そのドライバが IOV 機能を備えていることがドライバコールバックフラグに示されているかぎり、Oracle Solaris IOV フレームワークはその接続後に VF の構成を試みます。
PF はデバイス固有のメカニズムを介して、関連付けられた各 VF を個別に有効化および無効化できます。
物理機能に関連付けられた機能。VF は軽量な PCIe 機能であり、物理機能やその PF に関連付けられたほかの VF と、1 つ以上の物理リソースを共有します。VF ドライバが示す特性は次のとおりです。
ルートドメインと I/O ドメインの両方に表示されます
HW メールボックスと OS 提供インタフェースのいずれかを使って PF との通信を開始できます
次の条件を満たすまでルートドメインに表示されません。
ルートドメインがブート済みである
PF ドライバが接続し、VF の構成を呼び出す
ルートドメインの Oracle Solaris IOV フレームワークによって VF が有効化される
システムファームウェアによってリソースが VF に割り当てられる
次の条件を満たすまで I/O ドメインに表示されません。
VF がすでに有効化され、ルートドメインに表示されている
I/O ドメインに VF が割り当てられている
Oracle Solaris ファームウェア (OBP) によって I/O ドメイン内で VF がプローブされる
注 - SR-IOV 対応の PF および VF ドライバは、割り込みリソース管理 (IRM) コールバックを登録し、この機能のサポートを提供する必要があります。IRM インタフェースの詳細や使用方法については、第 8 章割り込みハンドラを参照してください。
注 - VF がネットワーク VF の場合、numVFs の有効化が完了すると、次のパラメータを構成できます。VF を有効にする前に構成を完了しておくべきです。
mac-addr
vlan (Virtual LAN) ID
port-vlan-id
alt-mac-addrs
mtu
PF ドライバは、次の表に記載された構成パラメータをサポートする必要があります。これらのパラメータは Sparc OVM Manager にエクスポートできます。構成が完了するのは、すべてのパラメータを構成した場合だけです。
表 21-1 構成パラメータの定義
|
注 - デバイス構成パラメータを変更したら、デバイスを接続し直すようにしてください。
注 - VF を有効化する前に次の順序でパラメータを構成します。クラス固有のパラメータは、クラス固有のコンフィギュレータに基づいています。
標準に関するパラメータ
リソース固有およびデバイス固有のパラメータ
クラス固有のパラメータ
PCI 構成情報ファイル /etc/pci.conf は、システムが PCI 構成 (特定 PF の VF 数など) を保存できるようにします。pci.conf ファイルは次を提供します。
- システムのブート時に VF を自動的に作成できるように PCI 構成を持続させること。
- この構成ファイルは boot_archive の一部になっているため、システムのブート中に VF を使用できます。
注 - /etc/pci.conf ファイルを Oracle Solaris ブートプロセスに含めるには、/etc/pci.conf を /boot/solaris/filelist.ramdisk ファイルに追加します。
詳細は、付録 E pci.conf ファイルを参照してください。
SPARC: ldm コマンド経由でパラメータを設定できます。詳細は、ldm(1M) のマニュアルページを参照してください。
x86: pci.conf ファイルにクラス固有のパラメータを指定できます。次の例は、pci.conf ファイルに設定されたパラメータを示したものです。
例 21-1 デバイス構成パラメータの設定
[[path=/pci@0,0/pci8086,3a40@1c/pci108e,4848@0,1]] num-vf=2 [Device_Configuration] [[path=/pci@0,0/pci8086,3a40@1c/pci108e,4848@0,1]] VF[0] = { primary-mac-addr = 0xaabbccddeeff alt-mac-addrs = 0x102233445556, 0x102233445557 vlan-id = 20, 30 } VF[1] = { primary-mac-addr = 0xaabbccddeef1 alt-mac-addrs = 0x102233445568 vlan-id = 20, 30, 40, 50 }
すべての Sparc OVM プラットフォームで、SPARC OVM Manager が SR-IOV 構成を担当します。Sparc OVM Manager は次の処理を担当します。
SR-IOV 対応ドライバを持つ PF のリストを取得します
ドライバでサポートされるデバイス固有のパラメータを取得します
特定のデバイス構成を検証します
マシン記述子 (MD) ファイルをすべての有効な構成詳細で更新するほか、VF の割り当てや削除も行います
次の図に、Sparc OVM 構成の概要図を示します。
図 21-2 Sparc OVM 構成の概要図
Oracle Solaris 11 リリースの時点では、x86 のような基本的なプラットフォーム上で SR-IOV を構成する際に使用できる構成ツールはありません。