JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
デバイスドライバの記述     Oracle Solaris 10 1/13 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.  Solaris DDI/DKI サービスのサマリー

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

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

E.  pci.conf ファイル

索引

SR-IOV の概要

SR-IOV テクノロジは、パフォーマンスとスケーラビリティーの両方を改善する、ハードウェアベースの仮想化ソリューションです。SR-IOV 標準は仮想マシン間での PCIe (Peripheral Component Interconnect Express) デバイスの効率的な共有を可能にし、この標準は、ネイティブのパフォーマンスに匹敵する I/O パフォーマンスを実現できるようハードウェアに実装されています。SR-IOV 仕様では、作成された新しいデバイスで仮想マシンを I/O デバイスに直接接続できるようにするための新たな標準が規定されています。

SR-IOV 仕様は、PCI-SIG (http://www.pcisig.com) によって策定および維持されています。

多くの仮想マシンが単一の入出力リソースを共有できます。共有されたデバイスでは、専用のリソースが提供されるほか、共有された共通リソースも利用されます。このような方法で、各仮想マシンは一意のリソースにアクセスできます。したがって、適切なハードウェアおよび OS サポート付きの SR-IOV 対応 Ethernet ポートなどの PCIe デバイスを、独自の構成空間を備えた異なる複数の物理デバイスとして提供できます。

次の図は、PCIe ハードウェアの SR-IOV テクノロジを示したものです。

図 21-1 SR-IOV テクノロジ

image:この図は SR-IOV テクノロジを示したものです

SR-IOV の 2 つの新しい機能タイプ:

物理機能 (PF)

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

仮想機能 (VF)

物理機能に関連付けられた機能。VF は軽量な PCIe 機能であり、物理機能やその PF に関連付けられたほかの VF と、1 つ以上の物理リソースを共有します。VF が持つことを許可されている構成リソースは、自身の動作に対するものだけです。

各 SR-IOV デバイスは 1 つの物理機能 (PF) を持つことができ、各 PF には最大 64,000 個の仮想機能 (VF) を関連付けることができます。VF の作成は、この目的のための特性に配慮して設計されたレジスタ経由で PF によって行われます。

PF で SR-IOV が有効化されると、PF のバス、デバイス、および機能番号 (ルーティング ID) を使って各 VF の PCI 構成空間にアクセスできます。各 VF には、レジスタセットのマッピングに使用される PCI メモリー空間もあります。VF のデバイスドライバは、レジスタセットを操作してその機能を有効にし、実際に存在する PCI デバイスとして表示されます。VF の作成が完了したら、IO ゲストドメインや個々のアプリケーション (基本的なプラットフォーム上の Oracle Solaris ゾーンなど) に VF を直接割り当てることができます。この機能により、それらは物理デバイスを共有したり、CPU やハイパーバイザソフトウェアのオーバーヘッドなしに入出力を実行したりできるようになります。

SR-IOV の利点

SR-IOV 標準では、IO ゲストドメイン間で PCIe デバイスを効率的に共有できます。SR-IOV デバイスでは、1 つの物理機能 (PF) に数百個の仮想機能 (VF) を関連付けることができます。VF の作成は、SR-IOV 機能を有効にするために設計されたレジスタ経由で、PF から動的に制御できます。デフォルトでは、SR-IOV 機能は無効になっており、PF は従来の PCIe デバイスとして動作します。

SR-IOV 機能を備えたデバイスは次の利点を享受できます。