JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
デバイスドライバの記述     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

パート I Oracle Solaris プラットフォーム用デバイスドライバの設計

1.  Oracle Solaris デバイスドライバの概要

2.  Oracle Solaris カーネルとデバイスツリー

3.  マルチスレッド

4.  プロパティー

5.  イベントの管理とタスクのキュー

6.  ドライバの自動構成

7.  デバイスアクセス: プログラム式入出力

8.  割り込みハンドラ

9.  ダイレクトメモリーアクセス (DMA)

10.  デバイスメモリーおよびカーネルメモリーのマッピング

11.  デバイスコンテキスト管理

12.  電源管理

13.  Oracle Solaris ドライバの強化

14.  階層化ドライバインタフェース (LDI)

パート II 特定の種類のデバイスドライバの設計

15.  文字デバイスのドライバ

16.  ブロックデバイスのドライバ

17.  SCSI ターゲットドライバ

18.  SCSI ホストバスアダプタドライバ

19.  ネットワークデバイスのドライバ

20.  USB ドライバ

21.  SR-IOV ドライバ

SR-IOV の概要

SR-IOV の利点

サポートされるプラットフォーム

用語

SR-IOV デバイスドライバの概要

物理機能 (PF) ドライバ

仮想機能 (VF) ドライバ

デバイス構成パラメータ

pci.conf ファイル

デバイス構成パラメータの設定

Sparc OVM プラットフォームでの SR-IOV 構成

基本的なプラットフォームでの SR-IOV 構成

ブート構成シーケンス

SR-IOV インタフェースのサマリー

ドライバの ioctl

SR-IOV ドライバのインタフェース

pci_param_get() インタフェース

pci_param_get_ioctl() インタフェース

pci_plist_get() インタフェース

pci_plist_getvf() インタフェース

pciv_vf_config() インタフェース

pci_plist_lookup() インタフェース

pci_param_free() インタフェース

pciv_send() インタフェース

SR-IOV ドライバの ioctl

データ構造体

iov_param_ver_info 構造体

iov_param_validate 構造体

iov_param_desc 構造体

IOV_GET_VER_INFO ioctl

IOV_GET_PARAM_INFO Ioctl

IOV_VALIDATE_PARAM ioctl

ドライバのコールバック

ドライバ ioctl のサンプルコード

パート III デバイスドライバの構築

22.  ドライバのコンパイル、ロード、パッケージ化、およびテスト

23.  デバイスドライバのデバッグ、テスト、およびチューニング

24.  推奨されるコーティング方法

パート IV 付録

A.  ハードウェアの概要

B.  Oracle Solaris DDI/DKI サービスのサマリー

C.  64 ビットデバイスドライバの準備

D.  コンソールフレームバッファードライバ

E.  pci.conf ファイル

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

SR-IOV デバイスドライバの概要

SR-IOV 機能は、物理機能 (PF) ドライバと仮想機能 (VF) ドライバから構成されます。次の各セクションでは、PF ドライバと VF ドライバ、および必要なデバイス構成の詳細について説明します。

物理機能 (PF) ドライバ

SR-IOV デバイスの PF ドライバは、SR-IOV 対応デバイスの物理機能 (PF) を管理するために使用されます。SR-IOV 機能をサポートする PCI 機能については、SR-IOV 仕様で規定されています。PF は SR-IOV 機能構造を含んでおり、SR-IOV の機能を管理するために使用されます。PF は完全な機能を備えた PCIe 機能であり、ほかの PCIe デバイスと同様に発見、管理、および操作を行えます。PF は完全な構成リソースを備えているため、PCIe デバイスの構成や制御に使用できます。PF ドライバが示す特性は次のとおりです。

仮想機能 (VF) ドライバ

物理機能に関連付けられた機能。VF は軽量な PCIe 機能であり、物理機能やその PF に関連付けられたほかの VF と、1 つ以上の物理リソースを共有します。VF ドライバが示す特性は次のとおりです。


注 - SR-IOV 対応の PF および VF ドライバは、割り込みリソース管理 (IRM) コールバックを登録し、この機能のサポートを提供する必要があります。IRM インタフェースの詳細や使用方法については、第 8 章割り込みハンドラを参照してください。



注 - VF がネットワーク VF の場合、numVFs の有効化が完了すると、次のパラメータを構成できます。VF を有効にする前に構成を完了しておくべきです。


デバイス構成パラメータ

PF ドライバは、次の表に記載された構成パラメータをサポートする必要があります。これらのパラメータは Sparc OVM Manager にエクスポートできます。構成が完了するのは、すべてのパラメータを構成した場合だけです。

表 21-1 構成パラメータの定義

構成パラメータ
定義
標準に関する構成パラメータ
サポート可能な VF の数

注 - VF の数を変更した場合、PF デバイスを切り離してから再度接続する必要があります。


max-config-vfs – 実際に構成可能な VF の最大数。PF ドライバがサポートする最大 VF 数が、SR-IOV 機能から示された性能と異なる場合、PF ドライバはこのパラメータをエクスポートできます。
リソース固有およびデバイス固有のパラメータ
帯域幅、プール、および Q-ペア。これらのパラメータを変更すると、その影響は PF ドライバと VF ドライバの両方に及びます。

デバイス固有のパラメータは、フレームワークから認識されていない可能性があり、PF ドライバにのみ認識されている可能性があります。VF を有効化する前にこれらのパラメータが認識され、PF ドライバがそのハードウェアを正しく初期化できるようにするべきです。

IOV フレームワークにエクスポートされたデバイス固有のパラメータを取得する方法を学ぶには、igb(7D) および ixgbe(7D) を参照してください。

  • pvid-exclusiveport-vlan-idvlan-ids を同時にサポートすることはできないことを示します。
  • max-vf-mtu – 1 つの VF で許可される最大の MTU。

  • max-vlans – ネットワーククラスの PF ドライバでサポートされる vlan スロットの最大数。

クラス固有のパラメータ
デバイスのクラスに基づく一般的なプロパティー。たとえば Ethernet デバイスは、MAC アドレス、VLAN-ID、Port-VLAN-ID、帯域幅などのプロパティーを持つことができます。

クラス固有の構成を使用することが期待されており、構成では各パラメータの動作を定義できます。

なし

注 - デバイス構成パラメータを変更したら、デバイスを接続し直すようにしてください。



注 - VF を有効化する前に次の順序でパラメータを構成します。クラス固有のパラメータは、クラス固有のコンフィギュレータに基づいています。

  1. 標準に関するパラメータ

  2. リソース固有およびデバイス固有のパラメータ

  3. クラス固有のパラメータ


pci.conf ファイル

PCI 構成情報ファイル /etc/pci.conf は、システムが PCI 構成 (特定 PF の VF 数など) を保存できるようにします。pci.conf ファイルは次を提供します。


注 - /etc/pci.conf ファイルを Oracle Solaris ブートプロセスに含めるには、/etc/pci.conf/boot/solaris/filelist.ramdisk ファイルに追加します。


詳細は、付録 E 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 プラットフォームでの SR-IOV 構成

すべての Sparc OVM プラットフォームで、SPARC OVM Manager が SR-IOV 構成を担当します。Sparc OVM Manager は次の処理を担当します。

次の図に、Sparc OVM 構成の概要図を示します。

図 21-2 Sparc OVM 構成の概要図

image:この図は、Sparc OVM 構成の概要図を示しています。

基本的なプラットフォームでの SR-IOV 構成

Oracle Solaris 11 リリースの時点では、x86 のような基本的なプラットフォーム上で SR-IOV を構成する際に使用できる構成ツールはありません。