JP5305866B2 - データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム - Google Patents

データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム Download PDF

Info

Publication number
JP5305866B2
JP5305866B2 JP2008305650A JP2008305650A JP5305866B2 JP 5305866 B2 JP5305866 B2 JP 5305866B2 JP 2008305650 A JP2008305650 A JP 2008305650A JP 2008305650 A JP2008305650 A JP 2008305650A JP 5305866 B2 JP5305866 B2 JP 5305866B2
Authority
JP
Japan
Prior art keywords
imp
client
iov
partition
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008305650A
Other languages
English (en)
Other versions
JP2009151767A (ja
Inventor
アーロン・チェス・ブラウン
レナート・ジェイ・レシオ
スティーヴン・マーク・サーバー
ダグラス・エム・フレイマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009151767A publication Critical patent/JP2009151767A/ja
Application granted granted Critical
Publication of JP5305866B2 publication Critical patent/JP5305866B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Description

本発明は、一般に、改良されたデータ処理システムおよび方法に関する。より具体的には、本発明は、入出力仮想化(IOV:input/output virtualization)管理パーティション内の仮想仲介(virtualintermediary)を介して、周辺装置相互接続(PCI:Peripheral ComponentInterconnect)IOVアダプタなどのIOVアダプタを管理するためのシステムおよび方法を対象とする。
最新のコンピューティング・デバイスは、そもそも1990年代にインテル社によって作成された周辺装置相互接続規格の何らかのバージョンまたは実装例を使用する入出力(I/O:input/output)アダプタおよびバスを使用する。周辺装置相互接続(PCI)規格では、コンピュータのマザーボードに周辺装置を接続するためのコンピュータ・バスを規定している。PCIエクスプレス(PCI Express)すなわちPCIeは、既存のPCIプログラミング概念を使用するPCIコンピュータ・バスの一実装例であるが、そのコンピュータ・バスは、まったく異なり、さらに高速のシリアル物理層通信プロトコルを基礎とする。この物理層は、複数の装置間で共用可能な双方向バスではなく、正確に2つの装置に接続される単一の単方向リンクから構成される。
図1は、PCIe規格によるPCIエクスプレス(PCIe)ファブリック・トポロジを組み込むシステムを例示する模範的な図である。図1に図示されている通り、システム100は、ルート複合体130に結合されたホスト・プロセッサ(CPU)110およびメモリ120からなり、次にこのルート複合体130は、PCIeエンドポイント140(「エンドポイント(endpoint)」という用語は、PCIe対応入出力アダプタを指すためにPCIe規格で使用されている)、PCIeエクスプレス−PCIブリッジ150、および1つ以上の相互接続スイッチ160のうちの1つ以上に結合されている。ルート複合体130は、CPU/メモリを入出力アダプタに接続する入出力階層のルートを示す。ルート複合体130は、ホスト・ブリッジと、0個以上のルート複合体統合エンドポイントと、0個以上のルート複合体イベント・コレクタと、1つ以上のルート・ポートとを含む。各ルート・ポートは、個別の入出力階層をサポートする。入出力階層は、ルート複合体130と、0個以上の相互接続スイッチ160またはブリッジ150あるいはその両方(スイッチまたはPCIeファブリックを含む)と、エンドポイント140、170、182〜188などの1つ以上のエンドポイントからなる可能性がある。PCIおよびPCIeに関する詳細については、www.pcisig.comにある周辺装置相互接続分科会(PCI−SIG:peripheral component interconnect special interest group)のWebサイトから入手可能なPCIおよびPCIe規格を参照する。
PCIおよびPCIe規格に加えて、PCI−SIGは、いくつかのロジカル・パーティション(LPAR:logical partition)によって共用可能な入出力アダプタ(IOA:I/Oadapter)を設計する方法を定義するための入出力仮想化(IOV)規格も定義した。LPARは、各リソース・セットがそれ自体のオペレーティング・システム・インスタンスおよびアプリケーションにより独立して動作できるように、複数のリソース・セットに分割されたコンピュータのプロセッサ、メモリ、および記憶域の一区分である。作成可能なロジカル・パーティションの数は、使用可能なシステムのプロセッサ・モデルおよびリソース次第である。典型的には、テストおよび実稼働環境などを分離するために、データベース動作、クライアント/サーバ動作などの種々の目的のためにパーティションが使用される。各パーティションは、他のパーティションが個別マシン内にある場合のように他のパーティションと通信することができる。LPARをサポートする最新システムでは、いくつかのリソースを複数のLPAR間で共用することができる。前述の通り、PCIおよびPCIe規格では、共用可能なリソースの1つは、入出力仮想化メカニズムを使用する入出力アダプタである。
PCI−SIGは、いくつかのLPARによって共用可能なIOAを設計する方法を定義するための規格を提供しているが、この規格は、IOAをホスト・システム内に接続する方法を定義していない。その上、この規格は、入出力仮想化を使用するIOAの共用機能を管理する方法を指定していない。これは、PCI−SIG規格がルート複合体の下にあるPCIeファブリックの動作に関する設定規格に関係しているからである。換言すれば、PCI−SIGは、システム・ハウスの領域で考慮されるので、ルート複合体以上に関する規格の定義を提供していない。すなわち、たとえば、インテル・プラットフォーム、IBM Power(商標)プラットフォーム、およびSparcプラットフォームのそれぞれは、PCI−SIG規格に明記されていない種々のシステム実装要件を有する可能性がある。
例示的な諸実施形態は、入出力仮想化(IOV)管理パーティション内の仮想仲介を介して、IOVアダプタを管理するためのシステムおよび方法を提供する。例示的な諸実施形態のメカニズムは、1つの入出力(I/O)ファブリックが2つ以上のロジカル・パーティション(LPAR)によって共用され、各LPARが潜在的に1つの入出力アダプタ(IOA)を他のLPARと共用できる状況に対処するものである。
特に、例示的な諸実施形態のメカニズムにより、各LPARには、それに割り当てられた仮想機能(VF:virtual function)にアクセスするため、ならびにそれに割り当てられたVFから直接、割り込みを受信するために、それ自体の個別アドレス空間が割り当てられ、各LPARの認識では、通常の入出力動作のためにそれがそれ自体の独立IOAを有することになっている。PCIエクスプレス(PCIe)入出力仮想(IOV:I/O Virtual)アダプタなどのIOAの各VFは、複数のLPARの全域で共用することができる。例示的な諸実施形態のメカニズムは、入出力仮想化管理パーティション(IMP:I/O Virtualization Management Partition)にIOVアダプタ全体を割り当てることにより、IOVアダプタの物理機能(PF:Physical Function)を介してIOVアダプタの共用リソースを管理するための機能を提供する。より具体的には、IMP内で実行されるコードは、VFエラー処理動作、VFリセット動作、および構成動作を完全に管理するためにVFへの仮想仲介(VI)として動作する。加えて、IMPは、共通VF機能にアクセスするためにPFへのインターフェース(たとえば、ネットワーク・アダプタ用のVFのためのネットワーク・アドレス)として動作し、ここではアダプタ・サウスサイド管理(adapter south-side management)という。
さらに、VFならびにこれらのVFを使用するクライアント・パーティションに関するリソース割り当ておよび管理の機能は、通常、ハイパーバイザなど、仮想化プラットフォームによって実行される可能性があり、このIMPによって実装される。この場合、リソース割り当ては、初めにアダプタのVFとともにIMPに対してリソース・プールとして割り当てられた、メモリ・マップ入出力(MMIO:Memory Mapped I/O)アドレス空間、DMAアドレス空間、割り込みなどの機能をシステム内のクライアント・パーティションに割り当てることを意味する。
例示的な一実施形態では、入出力(I/O)仮想化を管理するための方法が提供される。この方法は、データ処理システム内で1つ以上のクライアント・パーティションを作成するステップであって、各クライアント・パーティションがデータ処理システムのリソースの関連部分を有するステップと、データ処理システム内で入出力仮想化管理パーティション(IMP)を作成するステップとを含むことができる。この方法は、IMPにより、データ処理システムに関連する1つ以上の入出力仮想化(IOV)対応入出力エンドポイントを識別するステップと、IMPにより、1つ以上のIOV対応入出力エンドポイントの仮想機能を1つ以上のクライアント・パーティションに割り当てるステップと、データ処理システムのハイパーバイザにより、1つ以上のクライアント・パーティションへの仮想機能の割り当てに基づいて、IMPと1つ以上のクライアント・パーティションとの間で通信するための少なくとも1つの通信構造を作成するステップとをさらに含むことができる。この方法は、1つ以上のクライアント・パーティションのうちの少なくとも1つのクライアント・パーティションにより、少なくとも1つの通信構造を使用して、1つ以上のIOV対応入出力エンドポイントの1つ以上の仮想機能により仮想機能構成動作を実行するステップをさらに含むことができる。
この方法は、データ処理システムのハイパーバイザにより、IMPによる管理のためにデータ処理システムのリソースの一部分をIMPに割り当てるステップと、IMPにより、1つ以上のクライアント・パーティションに割り当てられた仮想機能に必要ないくつかのリソースを決定するステップとをさらに含むことができる。その上、この方法は、データ処理システム内で実装すべきいくつかの仮想機能と、1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定するステップと、仮想機能が割り当てられる1つ以上のクライアント・パーティションからハイパーバイザへの1つ以上の呼び出しを実行し、一部分のリソースからのリソースを1つ以上のクライアント・パーティションに割り当てるステップとを含むことができる。
データ処理システム内で実装すべきいくつかの仮想機能と、1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定するステップは、それぞれの識別されたIOV対応入出力エンドポイントによってサポートされるいくつかの仮想機能を決定するステップと、識別されたIOV対応入出力エンドポイントと、それぞれの識別されたIOV対応入出力エンドポイントによってサポートされるいくつかの仮想機能とを記述する情報をユーザに提示するステップとを含むことができる。データ処理システム内で実装すべきいくつかの仮想機能と、1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定するステップは、データ処理システム内で実装すべきいくつかの仮想機能と、1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを示すユーザ入力を受信するステップをさらに含むことができる。
この方法は、IMPにより、仮想機能が割り当てられた1つ以上のクライアント・パーティションへのリソースの転送をハイパーバイザが開始することを要求するステップと、IMPにおいて、ハイパーバイザから、要求に応答して、1つ以上のトークンを受信するステップと、IMPから、通信構造を介して1つ以上のクライアント・パーティションにトークンを送信するステップとをさらに含むことができる。1つ以上のクライアント・パーティションは、1つ以上のトークンを使用して、ハイパーバイザからリソースを入手することができる。
IMPは、1つ以上のIOV対応入出力エンドポイントにおいて、IMPに割り当てられた物理機能用の構成空間と、IMPに割り当てられた物理機能に属す仮想機能用の構成空間のみにアクセスすることができる。1つ以上のクライアント・パーティションは、1つ以上のIOV対応入出力エンドポイントにおいて、1つ以上のクライアント・パーティションに割り当てられた仮想機能の構成空間に直接アクセスすることができず、少なくとも1つの通信構造を使用して、IMPを介してのみ、1つ以上のクライアント・パーティションに割り当てられた仮想機能の構成空間にアクセスすることができる。IMPは、1つ以上のIOV対応入出力エンドポイントにおいて、あるクライアント・パーティションに割り当てられた仮想機能の構成空間に対するそのクライアント・パーティションによるアクセスを許可することができ、1つ以上のIOV対応入出力エンドポイントにおいて、クライアント・パーティションに割り当てられていない仮想機能の構成空間に対するクライアント・パーティションによるアクセスをブロックする。
この方法は、1つ以上のクライアント・パーティションに対する仮想機能の割り当てを指示し、入出力仮想化管理動作の実行を指示するハードウェア管理コンソール(HMC:hardware management console)から入力を受信するステップをさらに含むことができる。HMCからの入力は、新しいIOV対応入出力エンドポイントをデータ処理システムに追加するためにホット・プラグ動作を開始するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行することは、新しいIOV対応入出力エンドポイントをIMPに割り当てるステップと、新しいIOV対応入出力エンドポイントの追加に基づいてIMP構成するステップと、1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションに新しいIOV対応入出力エンドポイントの少なくとも1つの仮想機能を動的に追加するステップとを含むことができる。入出力仮想化管理動作を実行することは、新しいIOV対応入出力エンドポイントの少なくとも1つの仮想機能の動的追加に基づいて1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションにリソースを割り振るステップと、少なくとも1つの通信構造を使用して、IMPを介して新しいIOV対応入出力エンドポイントの少なくとも1つの仮想機能を構成するステップとをさらに含むことができる。
HMCからの入力は、データ処理システムから既存のIOV対応入出力エンドポイントを除去するためにホット・プラグ動作を開始するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行することは、除去すべきIOV対応入出力エンドポイントの仮想機能に関連するリソースを有する1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションを識別するステップと、仮想機能と、仮想機能に関連するリソースを、少なくとも1つのクライアント・パーティションによる使用から除去するステップと、物理機能と、物理機能に関連するリソースを、IMPによる使用から除去するステップと、除去すべきIOV対応入出力エンドポイントの電源を遮断するステップとを含むことができる。
HMCからの入力は、データ処理システムを動的に再構成するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行することは、1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションに追加するためのIOV対応入出力エンドポイントの仮想機能の選択を受信するステップと、IMPおよび選択されたクライアント・パーティション内で選択された仮想機能用の少なくとも1つの通信構造を作成するステップと、選択されたクライアント・パーティションへのリソースの転送を要求する、IMPからハイパーバイザへの要求を送信するステップとを含むことができる。入出力仮想化管理動作を実行することは、IMPにおいて、要求に応答して、ハイパーバイザから少なくとも1つのトークンを受信するステップと、選択されたクライアント・パーティションに少なくとも1つのトークンを提供するステップと、選択されたクライアント・パーティション内で選択された仮想機能用のリソースをセットアップするステップと、選択されたクライアント・パーティションにより、少なくとも1つのトークンを使用して、ハイパーバイザからリソースを入手するステップと、選択されたクライアント・パーティション内で選択された仮想機能用のデバイス・ドライバをロードするステップとをさらに含むことができる。
HMCからの入力は、データ処理システムを動的に再構成するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行することは、1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションから除去するための入出力エンドポイントの仮想機能の選択を受信するステップと、選択されたクライアント・パーティションによりさらに使用することから選択された仮想機能を除去するステップと、選択されたクライアント・パーティション内で選択された仮想機能用のリソースを除去するステップとを含むことができる。
他の例示的な諸実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータ・プログラム(computer program product)が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行されたときに、方法の例示的な実施形態に関して上記で概要を示した動作のうちの様々なものおよびそれらの組み合わせをコンピューティング・デバイスに実行させる。
さらに他の例示的な実施形態では、システム/装置が提供される。このシステム/装置は、1つ以上のプロセッサと、1つ以上のプロセッサに結合されたメモリとを含むことができる。このメモリは、1つ以上のプロセッサによって実行されたときに、方法の例示的な実施形態に関して上記で概要を示した動作のうちの様々なものおよびそれらの組み合わせを1つ以上のプロセッサに実行させる命令を含むことができる。
例示的な一実施形態では、各クライアント・パーティションがデータ処理システムのリソースの関連部分を有する1つ以上のクライアント・パーティションと、1つ以上のクライアント・パーティションと通信状態にある入出力仮想化管理パーティション(IMP)と、IMPと通信状態にある1つ以上の入出力エンドポイントと、IMPおよび1つ以上のクライアント・パーティションに関連して提供される少なくとも1つの通信構造とを含むことができるデータ処理システムが提供される。このIMPは、データ処理システムに関連する1つ以上の入出力仮想化(IOV)対応入出力エンドポイントを識別することができる。その上、このIMPは、1つ以上のIOV対応入出力エンドポイントの仮想機能を1つ以上のクライアント・パーティションに割り当てることができる。さらに、1つ以上のクライアント・パーティションの少なくとも1つのクライアント・パーティションは、少なくとも1つの通信構造を使用して、1つ以上のIOV対応入出力エンドポイントの1つ以上の仮想機能により仮想機能構成動作を実行することができる。
本発明の上記その他の特徴および利点は、本発明の模範的な諸実施形態に関する以下の詳細な説明に記載されるか、または以下の詳細な説明を考慮して当業者にとって明白なものになるであろう。
本発明ならびに本発明の好ましい使用態様と追加の目的および利点については、添付図面に併せて読んだときに、例示的な諸実施形態に関する以下の詳細な説明を参照することにより最も良く理解されるであろう。
例示的な諸実施形態は、入出力仮想化(IOV)管理パーティション内の仮想仲介およびリソース・マネージャを介して、IOVアダプタを管理するためのメカニズムを提供する。したがって、例示的な諸実施形態のメカニズムを理解するために、ハイパーバイザまたはその他の仮想化プラットフォームを使用するシステム内で入出力仮想化をどのように実装できるかをまず理解することが重要である。周辺装置相互接続エクスプレス(PCIe)アダプタまたはエンドポイントに関して例示的な諸実施形態を説明するが、本発明はこれらに限定されないことを認識されたい。むしろ、例示的な諸実施形態のメカニズムは、入出力アダプタ内で入出力仮想化をサポートする任意の入出力ファブリックで実装することができる。その上、ハイパーバイザが使用される実装例に関して例示的な諸実施形態を説明するが、本発明はこれに限定されないことを認識されたい。それとは反対に、ハイパーバイザ以外のその他のタイプの仮想化プラットフォームは、現在知られているかまたは今後開発されるソフトウェア、ハードウェア、またはソフトウェアとハードウェアの任意の組み合わせのいずれで実装されるとしても、本発明の精神および範囲を逸脱せずに使用することができる。
図2は、当技術分野で一般に知られているシステム仮想化を例示する模範的な図である。システム仮想化は、各リソース・セットがそれ自体のシステム・イメージ・インスタンスおよびアプリケーションにより独立して動作する、物理システムのプロセッサ、メモリ、入出力アダプタ、記憶域、およびその他のリソースの一区分である。このようなシステム仮想化では、仮想リソースは、物理リソースから構成され、物理リソースのプロキシ、たとえば、同じ外部インターフェースおよび機能を有し、構築されたインターフェース/機能を備えたメモリ、ディスク・ドライブ、その他のハードウェア・コンポーネントとして動作する。システム仮想化は、典型的には、仮想リソースを作成し、それを物理リソースにマッピングする仮想化層を使用し、それにより、仮想リソース間の分離を提供する。仮想化層は、典型的には、ソフトウェア、ファームウェア、ハードウェア・メカニズムのうちの1つまたはこれらの組み合わせとして提供される。
図2に図示されている通り、典型的には仮想化システムでは、アプリケーション210は、汎用または特殊目的オペレーティング・システムなどのソフトウェア・コンポーネントであるシステム・イメージ(SI:system image)220と通信し、それにより特定の仮想および物理リソースが割り当てられる。システム・イメージ220は、単一のSIインスタンスを実行するために必要な物理または仮想化リソース、たとえば、仮想化プロセッサ、メモリ、入出力アダプタ、記憶域などからなる仮想システム230に関連付けられる。
システム・イメージ220は、仮想システム230の使用を介して、仮想化層240を経由して物理システム・リソース250にアクセスする。仮想化層240は、SIへのリソースの割り振りを管理し、他のSIによるアクセスからSIに割り当てられたリソースを分離する。この割り振りおよび分離は、仮想化層240によって実行されるリソース・マッピングと、仮想化層240によって維持される1つ以上のリソース・マッピング・データ構造に基づいて実行される場合が多い。
このような仮想化を使用すると、入出力動作および入出力リソースの仮想化を可能にすることができる。すなわち、入出力仮想化(IOV)に関しては、部分的にまたは全面的にハイパーバイザとして実装可能な仮想化層240を使用して、2つ以上のSIにより、単一の物理入出力装置を共用することができる。ハイパーバイザは、たとえば、SIからの構成動作、入出力動作、およびメモリ動作と、SIへの直接メモリ・アクセス(DMA:direct memory access)動作、完了動作、および割り込み動作のうちの1つ以上について仲介することにより、IOVをサポートするために使用される、ソフトウェア、ファームウェアなどにすることができる。
図3は、仮想化層を使用して、PCIルート複合体の入出力を仮想化するための第1の手法を例示する模範的な図である。図3に図示されている通り、ホスト・プロセッサ・セット310は、チップ、マザーボード、ブレードなどの1つ以上のプロセッサにすることができ、それによりアプリケーション(図示せず)がPCIeエンドポイント370〜390などのシステム・リソースにアクセスできる複数のシステム・イメージ320〜330をサポートすることができる。システム・イメージは、仮想化層340、PCIeルート複合体350、および1つ以上のPCIeスイッチ360またはその他のPCIeファブリック・エレメントあるいはその両方を介して仮想化リソースと通信する。
図3に例示されている手法により、仮想化層340は、部分的にまたは全面的にハイパーバイザまたはその他のタイプの仮想化プラットフォームとして実装可能であり、すべての入出力トランザクションに関わり、すべての入出力仮想化機能を実行する。たとえば、仮想化層340は、様々なSIの入出力キューからの入出力要求をPCIeエンドポイント370〜390内の単一のキューに多重化する。したがって、仮想化層340は、SI320〜330と物理PCIeエンドポイント370〜390との間のプロキシとして動作する。
図4は、最初から共用されるPCI入出力アダプタを使用して、PCIルート複合体の入出力を仮想化するための第2の手法を例示する模範的な図である。図4に図示されている通り、ホスト・プロセッサ・セット410は、チップ、マザーボード、ブレードなどの1つ以上のプロセッサにすることができ、それによりアプリケーション(図示せず)がPCIe入出力仮想化(IOV)エンドポイント470〜490などのシステム・リソースにアクセスできる複数のシステム・イメージ420〜430をサポートすることができる。システム・イメージ420〜430は、PCIeルート複合体440および1つ以上のPCIeスイッチ460またはその他のPCIeファブリック・エレメントあるいはその両方を介して仮想化リソースと通信する。
PCIeルート複合体440は、1つ以上のアドレス変換および保護テーブル・データ構造、割り込みテーブル・データ構造などを含むことができ、IOV対応エンドポイント470〜490による入出力動作の仮想化を容易にするルート複合体仮想化イネーブラ(RCVE:root complex virtualization enabler)442を含む。アドレス変換および保護テーブル・データ構造は、たとえば、仮想化リソースに関する仮想アドレスと実アドレスとのアドレス変換を実行し、仮想リソースからSIへのマッピングに基づいて仮想リソースへのアクセスを制御し、その他の仮想化動作を実行するために、PCIeルート複合体440が使用することができる。これらのルート複合体割り込みテーブル・データ構造は、PCIeメモリ・アドレス空間によりアクセス可能であり、たとえば、SIに関連する適切な割り込みハンドラに割り込みをマッピングするために使用される。
図3に図示されている手法のように、図4の仮想化構造にも仮想化層450が提供される。仮想化層450は、PCIeスイッチ460に結合可能な非IOV対応PCIeエンドポイントとともに使用される。すなわち、仮想化層450は、部分的にまたは全面的にハイパーバイザまたはその他の仮想化プラットフォームとして実装可能であり、固有のすなわち、エンドポイント内部の入出力仮想化(IOV)用のサポートを備えていないPCIeエンドポイントについて図3に関して上述したものと同様に、PCIeエンドポイントとともに使用される。
IOV対応PCIeエンドポイント470〜490の場合、仮想化層450は、主に構成トランザクションのために使用され、SIから開始されるメモリ・マップ入出力(MMIO)動作またはPCIeエンドポイント470〜490から開始される直接メモリ・アクセス(DMA)動作などのメモリ・アドレス空間動作に関わらない。それとは反対に、SI420〜430とエンドポイント470〜490との間のデータ転送は、仮想化層450による介入なしに直接実行される。SI420〜430とエンドポイント470〜490との間の直接入出力動作は、RCVE442およびIOV対応PCIeエンドポイント470〜490の組み込み入出力仮想化ロジック、たとえば、物理機能および仮想機能を経由して可能になる。直接入出力動作を実行する能力により、入出力動作を実行できる速度が大幅に増加されるが、PCIeエンドポイント470〜490が入出力仮想化をサポートすることが必要になる。
図5は、PCIe入出力仮想化(IOV)対応エンドポイントの模範的な図である。図5に図示されている通り、PCIe IOVエンドポイント500は、それによりPCIeファブリックのPCIeスイッチなどとの通信が実行可能なPCIeポート510を含む。内部ルーティング520は、構成管理機能530および複数の仮想機能(VF)540〜560への通信経路を提供する。構成管理機能530は、仮想機能540〜560とは対照的に物理機能(PF)にすることができる。物理「機能」とは、この用語がPCI規格で使用されるように、単一の構成空間によって表される1組のロジックである。換言すれば、物理「機能」は、たとえば、分離不能リソース570内に設けることができるような、メモリ内のその機能の関連構成空間内に保管されたデータに基づいて構成可能な回路論理である。
構成管理機能530を使用して、仮想機能540〜560を構成することができる。仮想機能は、入出力仮想化対応エンドポイント内で、1つ以上の物理エンドポイント・リソース、たとえば、リンクを共用する機能であって、たとえば、他の機能とともにPCIe IOVエンドポイント500の共用可能リソース・プール580内に設けることができる機能である。仮想機能は、ハイパーバイザによるランタイム介入なしに、システム・イメージからの入出力動作およびメモリ動作のためのシンクになることができ、システム・イメージ(SI)への直接メモリ・アクセス(DMA)動作、完了動作、および割り込み動作のソースになることができる。
PCIeエンドポイントは、PCIeエンドポイントによってサポートされる「機能」に関する多種多様なタイプの構成を有することができる。たとえば、エンドポイントは、単一の物理機能(PF)、複数の独立PF、または複数の従属PFをサポートすることができる。固有の入出力仮想化をサポートするエンドポイントでは、そのエンドポイントによってサポートされる各PFは1つ以上の仮想機能(VF)に関連付けることができ、その仮想機能自体は他のPFに関連するVFに依存する可能性がある。
例示的な諸実施形態は、入出力仮想化(IOV)管理パーティションを使用して、図5に図示されているIOV対応PCIeエンドポイント500などのIOVアダプタを管理するためのシステムおよび方法を提供する。例示的な諸実施形態のメカニズムは、図4のPCIeスイッチ460などの1つ以上のPCIeスイッチを含むことができる1つの入出力(I/O)ファブリックがホスト・システムの2つ以上のロジカル・パーティション(LPAR)によって共用され、各LPARが潜在的に1つの入出力アダプタ(IOA)、たとえば、図4のPCIeエンドポイント470〜490を他のLPARと共用できる状況に対処するものである。
特に、例示的な諸実施形態のメカニズムにより、各LPARには、それに割り当てられた仮想機能(VF)にアクセスするため、ならびにそれに割り当てられたVFから直接、割り込みを受信するために、それ自体の個別アドレス空間が割り当てられ、各LPARの認識では、通常の入出力動作のためにそれがそれ自体の独立IOAまたは入出力エンドポイントを有することになっている。PCIエクスプレス(PCIe)入出力仮想(IOV)アダプタまたはエンドポイントなどのIOAの各VFは、複数のLPARの全域で共用することができる。例示的な諸実施形態のメカニズムは、入出力仮想化管理パーティション(IMP)にそのPFを割り当てることにより、IOVアダプタ/エンドポイントの物理機能(PF)を介してIOVアダプタ/エンドポイント(以下、単に入出力エンドポイントという)の共用リソースを管理するための機能を提供する。より具体的には、IMP内で実行されるコードは、VFエラー処理動作、VFリセット動作、および構成動作を完全に管理するためにVFへの仮想仲介(VI)として動作する。加えて、IMPは、共通VF機能にアクセスするためにPFへのインターフェース(たとえば、ネットワーク・アダプタ用のVFのためのネットワーク・アドレス)として動作し、ここでは入出力エンドポイント・サウスサイド管理という。
図6は、例示的な一実施形態により、IOV対応エンドポイントまたはアダプタが使用されるシステム構造の模範的な図である。図6に図示されているメカニズムは、図4に例示されているメカニズムに併せて実装することができる。たとえば、図6に図示されているIMP603は、図4のシステム・イメージ1 420に関連して提供することができ、図6のクライアント・パーティション604は、図4のシステム・イメージ2 430に関連して提供することができる。同様に、図6の入出力ファブリック611は図4のPCIeスイッチ460を含むことができ、IOVエンドポイント614は図4のPCIeエンドポイント470〜490のうちのいずれか1つと同様のものにすることができ、エンドポイント615および616は、図3のエンドポイント370〜390など、IOV対応エンドポイントまたは非IOV対応エンドポイントにすることができる。
図6に図示されている通り、システム601は、任意のデータ処理装置、たとえば、サーバ、クライアント・コンピューティング・デバイスなどにすることができるホスト・システム626と、1つまたは複数の通信リンクと1つ以上のスイッチを含むことができる入出力ファブリック611と、例示的な一実施形態ではPCIe入出力エンドポイントにすることができる1つ以上の入出力エンドポイント614〜616とを含み、入出力エンドポイント614はIOV対応エンドポイントであり、残りのエンドポイント615〜616はIOV対応エンドポイントまたは非IOV対応エンドポイントにすることができる。ホスト・システム626は、データ処理装置の基礎ハードウェアであるプラットフォーム・ハードウェア610と、ハイパーバイザ625と、ロジカル・パーティション(LPAR)603および604と、対応するパーティション・ファームウェア(PFW:partition firmware)623および624とを含む。本明細書ではハイパーバイザ625による使用に関して例示的な諸実施形態を説明しているが、前述の通り、本発明の精神および範囲を逸脱せずに他のタイプの仮想化プラットフォームを使用できることが認識されるであろう。
ハイパーバイザ625は、例示的な一実施形態では、プラットフォーム・ハードウェア610上で実行されるコードにすることができ、プラットフォームのファームウェアの一部になる。同様に、パーティション・ファームウェア(PFW)623〜624も、プラットフォームのファームウェアの一部になる可能性があるが、それらはLPAR内で実行されるLPARコードの一部であると論理的に見なされるので、LPAR603および604に関連して図示されている。
LPAR603および604は、リソースおよびLPAR内で実行されるオペレーティング・システム・イメージまたはインスタンスを割り振っている。加えて、LPAR603および604は、LPAR内でその他のアプリケーション、ソフトウェア、コードなどを実行することができる。たとえば、例示的な諸実施形態に対する特定の重要性により、LPARのうちの1つ、たとえば、LPAR603は、そのLPAR603にIOV管理パーティション(IMP)603として動作させるコードを実行する。その他のLPAR604はクライアント・パーティションとして動作することができる。IMP603およびクライアント・パーティション604は、以下により詳細に説明するコマンド/応答キュー(CRQ:Command/Response Queue)メカニズム607〜608を介してIOVリソース割り当ておよび機能管理のために相互に通信することが許可されている。図6には1つのIMP603と1つのクライアント・パーティション604のみが図示されているが、例示的な諸実施形態の精神および範囲を逸脱せずにホスト・システム626内に2つ以上のIMP603およびクライアント・パーティション604を設けることができることを認識されたい。
ハイパーバイザ625は、IOVエンドポイント614の構成空間619、621と、入出力ファブリック611の構成空間617にアクセスできる。「構成空間(configuration space)」という用語は、本明細書で使用されるように、システム601の特定のコンポーネントに関する構成データを保管する際に使用するために割り振られたメモリ・マップ入出力(MMIO)アドレス空間からの非結合アドレス空間(disjoint address space)を指す。さらに、IMPのオペレーティング・システム631およびデバイス・ドライバ605は、IMP603に割り当てられたときに物理機能(PF)612のための構成空間619にアクセスでき、IMP603に割り当てられたPFに属す仮想機能(VF)の構成空間621にアクセスできる。クライアント・パーティションのオペレーティング・システム632およびデバイス・ドライバ606は、それに割り当てられたVFの構成空間621のいずれにも直接アクセスできず、したがって、CRQメカニズム607〜608およびIMP603を介してこれらの構成空間621にアクセスしなければならない。VF構成空間621へのクライアント・パーティションのアクセスをブロックすることにより、IMP603内のソフトウェアは、仲介として、より具体的には、クライアント・パーティション604が構成空間621にアクセスすることが許可されることを確認するための仮想仲介(VI)として動作する。このようにして、IMP603は、クライアント・パーティション604に対し、そのVF613を適切に操作するために必要な構成空間621へのアクセスを可能にするが、他のクライアント・パーティションに関する問題を引き起こす可能性がある構成空間へのアクセスは可能にしない。すなわち、クライアント・パーティション604は、そのVF613に割り振られた構成空間のみにアクセスできる。
ホスト・システム626上または個別データ処理システム(図示の通り)内に常駐する可能性のある、ハードウェア管理コンソール(HMC)609上の管理アプリケーション640と、HMC609自体は、リモート管理コマンド(RMC:Remote Management Command)インターフェース602を介してIMP603およびクライアント・パーティション604に通報し、同じタイプのインターフェース620を介してハイパーバイザ625に通報する。管理アプリケーション640(以下、HMC603とまとめて単純にHMC609という)は、システム601内の様々なコンポーネントの全域で機能を制御するためのオーケストレータ(orchestrator)として動作し、人間がシステム構成を眺め、どのリソースをどのLPAR603〜604に割り当てる必要があるかに関する情報を入力するためのユーザ・インターフェース642を提供する。管理アプリケーション640は、以下により詳細に記述する通り、ユーザによって呼び出し可能な多種多様な機能を提供することができる。代わって、これらの機能は、このような機能の開始を起動するイベントまたは入力に応答してユーザ介入なしに自動的に呼び出すことができる。
前述の通り、クライアント・パーティション604は、IOV対応エンドポイント614内のそれぞれの仮想機能(VF)613の構成空間621にアクセスするために、IMP603と通信しなければならない。このような通信のためのインターフェースを提供するために、コマンド/応答キュー(CRQ)メカニズム607および608が使用される。これらのCRQメカニズム607および608は、それによりコマンド/応答(C/R)要求がポストされ受信される、送受信キューを含む。
図7は、例示的な一実施形態により、コマンド/応答キュー(CRQ)構造の模範的な実装例の詳細を例示する模範的な図である。CRQ構造を実装可能な方法は数多く存在し、図7はこのような構造の例示的な一実施形態を表しているだけである。たとえば、CRQ701は図6のハイパーバイザ625内に実装することができ、ハイパーバイザ・インターフェース(図示せず)は、これらのLPAR603〜604の間の要求のキューイングを可能にするためにIMP603とクライアント・パーティション604の両方に提供される。
図7に図示されている通り、引き続き図6に関して説明すると、CRQ701は、それぞれの通信方向に1つずつ、すなわち、IMP603からクライアント・パーティション604へと、クライアント・パーティション604からIMP603へという通信方向に関する受信キュー704〜705と、潜在的にそれぞれの通信方向に関する送信キュー702〜703からなる。IMP603は、IMPの関連送信キュー702にC/R要求706をポストすることにより、クライアント・パーティション604にC/R要求を送信することができる。加えて、ハイパーバイザ625は、特定のクライアント・パーティション604に関連する、受信キュー704上の送信キューの動作に関連するイベント713をポストすることができる。イベント713またはC/R要求706が受信キュー704上でキューイングされ、そのキューが以前は空であった場合、クライアント・パーティション604に割り込み707が送信される。クライアント・パーティション604は、そのCRQインターフェースを介して割り込み707を受信すると、ハイパーバイザ625によって提供されたクライアント・コマンド/応答取得インターフェース(client get command/response interface)708を使用することにより、すべての項目(割り込みを引き起こしたものと、追加された任意の後続のもの)を読み取ることができる。
同様に、反対方向では、クライアント・パーティション604は、CRQ構造701内のクライアント・パーティション604に関連する送信キュー703にC/R要求709をポストすることができる。また、ハイパーバイザ625は、IMP603に関連する受信キュー705にイベント712をポストすることもできる。イベント712またはC/R要求709が受信キュー705上でキューイングされ、そのキューが以前は空であった場合、IMP603に割り込み710が送信される。割り込み710に応答して、IMP603は、ハイパーバイザ625のIMPコマンド/応答取得インターフェース715を使用して、受信キュー705からそのC/R要求を検索することができる。
クライアントおよびIMP「取得」インターフェースは、送信キューへのインターフェースではなく、受信キューへのインターフェースであることに留意されたい。送信キューは送信インターフェースのために存在する。送信キューから受信キューへの矢印が示す通り、一方の側によって送信キューにポストされるものは、もう一方の側の受信キューに転送される。ハイパーバイザは、送信キューを実装するという中間ステップを有する代わりに、要求を受け取って、それを受信キューに直接入れることができるので、送信キューは任意選択である。
図8は、例示的な一実施形態により、1組の模範的なCRQハイパーバイザ・イベントの定義を例示する模範的な図である。図9は、例示的な一実施形態により、予想される対応応答とともに1組のCRQクライアント要求の定義を例示する模範的な図である。したがって、図8〜図9は、図7のCRQ構造701の送受信キューにポスト可能なイベントおよびクライアント要求のタイプの例を示している。これらのCRQイベントは、クライアントまたはIMPに関連する受信キューにポストすることができるので、CRQイベントは「パートナ(partner)」を参照する。「パートナ」とは、CRQ構造を介してIMPとクライアント・パーティションとの間で行われる接続における相手方(the other party)であり、そのイベントがポストされる受信キューが関連する当事者(the party)ではない。
図8に図示されている通り、「パートナ・パーティション接続(partnerpartition connected)」イベント802は、ハイパーバイザ、たとえば、図6のハイパーバイザ625がIMP、たとえば、図6のIMP603と、クライアント・パーティション、たとえば、図6のクライアント・パーティション604に、IMP603とクライアント・パーティション604との間の接続の両側が準備完了であることを通知する方法である。CRQ構造がハイパーバイザ625内で初期設定されると、IMP603とクライアント604との間で「接続」が確立されることを認識されたい。イベント802に応答して、クライアント・パーティション604は、IMPの状態を「接続(connected)」状態に変更し、初期接続の場合、クライアント・パーティション604は、CRQとIMPとの間の接続のためならびに潜在的にVFリソースを入手するためにデバイス・ドライバをロードすることができる。また、IMP603は、イベント802に応答してIMP603のメモリ内のクライアント・パーティション604の状態を「接続」状態に変更し、初期接続の場合、使用可能なリソースをクライアント・パーティション604に通報することができる。
「パートナ・パーティション故障(partner partitionfailed)」イベント804は、このイベント804を受信するIMP603またはクライアント・パーティション604に、その接続のもう一方の側がもはや使用可能ではなく、回復が必要であること、たとえば、その接続のもう一方の側がクラッシュし、リブート中であることを通知する。この場合、パートナは、返すことが予想され、パーティション、すなわち、その受信キューでイベント804を受信したIMP603またはクライアント・パーティション604は、パートナ・パーティション接続イベント802を待ち、次に通信リンクを再確立することが予想される。「パートナ・パーティション故障」イベント804に応答して、クライアント・パーティション604は、IMP603の状態を「非接続(not connected)」状態に変更することによって応答する。VF613は、たとえば、VF構成空間621にアクセスするためにCRQリンケージが必要になるまで、引き続きクライアント・パーティション604によって使用される可能性がある。CRQリンケージが必要になったときにIMP603の状態が「非接続」である場合、すなわち、その間に「パートナ・パーティション接続」イベント802が受信されていない場合、エラー回復状態に入る。IMP603は、クライアント・パーティション604の状態を「非接続」状態に変更することによって応答する。
「パートナ・パーティション接続終了(partner partitionterminated connection)」イベント806は、接続の一方の側に、接続のもう一方の側が何らかの理由で意図的に接続を閉じたことまたはハイパーバイザ625がクラッシュを検出し、いかなるリブートも予想されないことを通知する。いずれの場合も、「パートナ・パーティション接続終了」イベント806の受信側は、パートナが返すことを予想しないはずである。このイベント806に応答して、クライアント・パーティション604は、VFの使用を終了し、そのエラー・ログにエラー・イベントをポストする。IMP603は、VFのためにクライアント・パーティションに割り当てたリソースをハイパーバイザ625が廃止することを要求することによって応答する。
次に図9に移行すると、図9のクライアントからIMPへの要求は、無効である任意の要求が行われた場合のIMP603からのエラー応答812を含む。これは、たとえば、有効ではなかったか、または無効アドレスなど、要求に関する無効パラメータを含んでいた要求を作成したプログラミング・エラーが存在した場合に、行われた可能性がある。
図9のクライアントからIMPへの要求は、クライアント・パーティション604のために、クライアント・パーティション604に関連する、IOV対応アダプタ/エンドポイント614のVFおよびPFの構成空間について構成読み取り動作を実行するためにIMP603を取得するためにクライアント・パーティション604によって使用される構成要求814をさらに含む。同様に、クライアントからIMPへの要求は、クライアント・パーティション604のために、クライアント・パーティション604に関連する、IOV対応エンドポイント614のVFおよびPFの構成空間に対する構成書き込み動作を実行するためにIMP603を取得するためにクライアント・パーティション604によって使用される構成書き込み要求816をさらに含む。これらの要求814および816により、IMP603は、構成要求に関する仲介として動作するが、そのようにすることによって他のクライアント・パーティションを損なう場合、たとえば、VFおよびPFがその要求を送信したクライアント・パーティション604に関連しない場合、IOV対応アダプタ/エンドポイント614のVFおよびPFの構成空間へのアクセスを可能にしない。初期構成動作の一部として適切な範囲の関連付けが行われ、ハイパーバイザ625は、それぞれのCRQ607および608に関連する入出力構成構造をIMP603に渡し、それぞれのCRQ607、608について何が有効構成アドレス範囲などであるかを指定する。そのアクセスが他のクライアント・パーティションのセキュリティを損なう恐れがある場合、IMP603によってエラー結果が返される。そのアクセスが他のクライアント・パーティションのセキュリティを損なう恐れがない場合、読み取り/書き込み動作が実行され、IMP603からクライアント・パーティション604に結果が返される。
クライアント・パーティション604は、たとえば、機能レベル・リセット(FLR:Function Level Reset)を使用してクライアント・パーティション604に関連するVFをIMP603にリセットさせるためのVFリセット要求818をさらに発行することができる。
また、クライアント・パーティションは、それが行うことができる1組のエラー処理要求も有する。「VFエラー状態照会(query error state of VF)」要求820は、VFがエラーを検出した場合にIMP603がクライアント・パーティション604に通知することを要求する。IMP603の応答は、エラー状態を返すことであるか、またはクライアント・パーティション604がVFの構成空間にアクセスすることが許可されていないことなどによりエラー状態情報を返すことができない場合にクライアント・パーティション604にエラー応答を返すことである。
「VFへのロード/保管使用可能(Enable Load/Store toVF)」要求822は、VFがエラー状態にある場合のように、IMP603がVFに対するMMIOロードおよび保管動作の非ブロック化を可能にすることを要求する。これにより、デバイス・ドライバ606は、エラー後にそのVFに対するMMIOロード動作を発行し、何が行われた可能性があるかに関するVFからの情報ならびにどの動作を再始動でき、どの動作を再始動できないかを識別する情報を収集することができる。IMP603の応答は、MMIOエラー状態からVFを除去して成功応答を返すことであるか、またはクライアント・パーティション604がVFの構成空間にアクセスすることが許可されていないことなどによりMMIOエラー状態からVFを除去できない場合にエラー応答を返すことである。
「入出力ファブリック・エラー情報取得(get I/O fabricerror information)」要求824は、IMP603によりクライアント・パーティション604が単なるエラー情報以上のものをそのVFから取得することができ、それがデバッグ・データまたはより良好な障害分離を可能にすることができるデータを収集できるようにすることを要求する。IMP603の応答は、ファブリック・エラー・レジスタ・データを収集し、クライアント・パーティション604がこのようなデータにアクセスすることが許可されているものと想定して、そのデータをクライアント・パーティション604に返すことである。クライアント・パーティション604がこのようなデータにアクセスすることが許可されていない場合、エラー応答が返される。
また、HMC609は、クライアント・パーティション604からのVFの動的除去も調整することができる。「動的除去コマンドによるVF動作終了(VF operations terminated due to dynamic remove command)」要求826は、クライアント・パーティションからIMPへの通信を適切に(gracefully)終了するための方法である。クライアント・パーティション604からのこの要求826に応答して、IMP603は、要求826を確認し、クライアント・パーティション604に割り当てるために以前にハイパーバイザ625に依頼したリソースをハイパーバイザ625が廃止することを要求し、クライアント・パーティション604と通信するためにCRQ608の使用を停止する。
最後に、VFに関連し、したがって、「VFドライバ」と呼ばれるクライアント・パーティションのデバイス・ドライバ606から、PFに関連し、したがって、「PFドライバ」と呼ばれるIMP603内のデバイス・ドライバ605に、渡す必要がある固有のドライバ情報が存在する可能性がある。VFドライバからPFドライバへの通信要求828により、これはプラットフォーム・ファームウェアおよびハイパーバイザ625にとって透過的に行うことができる。
図10のIMP603からクライアント・パーティション604への要求は、無効である任意の要求が行われた場合のクライアント・パーティション604からのエラー応答852を含む。これは、たとえば、有効ではなかったか、または無効アドレスなど、要求に関する無効パラメータを含んでいた要求を作成したプログラミング・エラーが存在した場合に、行われた可能性がある。リソース使用可能要求854は、IMP603からクライアント・パーティション604にリソースの制御を渡すためにIMP603が使用することができる。たとえば、VFがIMPの制御からクライアント・パーティションの制御に再割り当てされる場合、IMP603は、VF用のMMIOアドレス空間、VF用のDMAアドレス空間、VF用の割り込みなどの制御をクライアント・パーティション604に渡すことができる。IMP603は、このリソースを表す1つ以上のトークンをクライアント・パーティション604に渡すためにリソース使用可能要求854を使用することによってこれを実行する。このトークンは、たとえば、以下に詳述する通り、ハイパーバイザ625に対してリソースを表すトークンを要求するIMP603により入手することができる。リソース使用可能要求854に対するクライアント・パーティション604の応答は、今後の使用のために渡されたトークンを保存することと、ハイパーバイザ625がIMPのリソースからクライアント・パーティションのリソースにリソースを再マッピングできるように、ハイパーバイザ625を呼び出して、ハイパーバイザ625にトークンを渡すことである。また、リソース使用可能要求854を受信した後、クライアント・パーティション604は、CRQメカニズム608を介して、CRQ608に関連するVF構成空間を照会し、VFに関するデバイス・ドライバ、たとえば、デバイス・ドライバ606をロードすることができる。
たとえば、IOV対応アダプタ/エンドポイント615のホット・プラグ動作のために、IMP603がクライアント・パーティション604に再割り当てしたリソースを取得してそれ自体のリソース・プールに戻す必要がある場合、IMP603は、クライアント・パーティション604にリソース返却要求856を送信することができる。クライアント・パーティションの応答は、VFの使用を停止し、CRQメカニズム608を介してVFのリセットを要求し、VF用のデバイス・ドライバ、たとえば、デバイス・ドライバ606を除去し、OSのファブリック構成からVFを除去し、クライアント・パーティション604からVFを除去するためのファームウェアを呼び出すことである。
この場合も、図8のイベント800は、ハイパーバイザ625によりIMP603およびクライアント・パーティション604内のCRQ構造607および608の受信キューにポストすることができる。図9のクライアント要求810は、そのCRQ構造607のその受信キューを介してIMP603に送信するために、そのCRQ構造608のその送信キュー内にクライアント・パーティション604によりポストすることができる。図10のIMP要求850は、そのCRQ構造608のその受信キューを介してクライアント・パーティション604に送信するために、そのCRQ構造607のその送信キュー内にIMPパーティション603によりポストすることができる。これらのCRQハイパーバイザ・イベント800、CRQクライアント・コマンド810、およびCRQ IMP要求850の使用の例については、以下に説明する。
図11は、例示的な一実施形態により、ロジカル・パーティション(LPAR)からプラットフォーム・ファームウェアへの1組の模範的な呼び出しの定義を例示する模範的な図である。特に、図11は、例示的な諸実施形態の諸態様を実装するために使用できる模範的なプラットフォーム・ファームウェア呼び出し900ならびにこれらの呼び出しがどちらのパーティション(クライアントまたはIMP)に適用されるかを例示している。これらの呼び出しは、たとえば、図6の関連プラットフォーム・ファームウェア623または624に対してパーティション603または604によって実行することができる。これらのLPARからプラットフォーム・ファームウェアへの呼び出し900の使用の例については、以下の図13〜図24の様々なものに関する説明に示す。
図11に図示されている通り、パートナLPARのCRQに対するコマンド(要求)または応答追加呼び出し902は、CRQ607または608上でコマンド/要求または応答を送信するために使用される呼び出しである。この呼び出しは、クライアント・パーティション604およびIMP603が使用することができる。CRQからのコマンド(要求)または応答取得呼び出し904は、CRQ607または608のキューから次にキューイングされたコマンド/要求または応答を取得するために使用される呼び出しである。
1組の呼び出し906〜916は、クライアント・パーティション604にとって直接使用可能ではない機能にアクセスするためにIMP603によって使用される呼び出しである。したがって、図11に図示されている通り、これらの呼び出しは、クライアント・パーティション604が使用することはできないが、IMP603が使用することはできる。これらの呼び出し906〜916は、クライアント・パーティション604からCRQ607上にキューイングされた要求を満足するIMP603内のコードで使用されるか、または一般的なPF制御および回復で使用される。入出力構成空間読み取り/書き込み呼び出し906は、クライアント・パーティション604のためにVFの構成空間に対する読み取りまたは書き込み動作を実行するためにIMP603によって使用される。このような呼び出しは、たとえば、ターゲットVFにアクセスする許可を得ているクライアント・パーティション604から図9の要求814または816を受信したことに応答して、IMP603によって行うことができる。
PFリセット呼び出し908は、IMP603によって行うことができるPF固有の呼び出しの1つである。この呼び出しは、PFをリセットし、その結果、そのPFに関連するすべてのVFもリセットする。この呼び出しが行われると、IMP603は、まず、VF使用不可呼び出し910を使用して、そのPFに関連するすべてのVFを使用不可にし、PFをリセットし、次にPFリセット前の状態にすべてのVF構成を復元しなければならない。
VF使用不可呼び出し910は、VFに対する任意の追加MMIO動作を使用不可にし、VFからの直接メモリ・アクセス(DMA)および割り込みがクライアント・パーティション604まで通過するのを防止するようプラットフォーム・ファームウェアに通知する。データ保全性の問題が発生しないことを確認するためにこれを実装する方法はいくつか存在する。例示的な一実施形態では、クライアント・パーティション604がそのVFからのMMIOロード動作を実行しようとした場合に、VFが存在しない場合と同じようにクライアント・パーティション604がすべて1のデータを受信できるように、ハードウェアを設計することができる。デバイス・ドライバ606は、すべて1のデータを予想していないときにすべて1のデータの有無をチェックし、VFエラー状態照会CRQ要求820を使用して、すべて1のデータがエラー状態を表すかどうかを検証することが予想される。VF使用不可呼び出し910は、主にエラー回復シナリオで使用されることが予想され、したがって、上述し以下に詳述する通り、VFドライバ、たとえば、デバイス・ドライバ606を呼び出して、それ自体の回復を始めることができる。
PFおよびVFエラー状態照会呼び出し912は、VFエラー状態照会CRQクライアント要求820を満足するために必要な情報をIMP603が取得できるようにするプラットフォーム・ファームウェアへの呼び出しである。また、この呼び出し912により、PFドライバ、たとえば、デバイス・ドライバ605はVFにとって使用可能なPFにより同等のエラー回復を実行することができる。
エラー回復に関するプラットフォーム・エラー・データを入手するために、ロードおよび保管動作のためのPFおよびVF使用可能呼び出し914ならびに入出力ファブリック・エラー情報照会呼び出し916が提供される。前者は、VFへのロード/保管使用可能CRQクライアント要求822を実装するために提供され、後者は、入出力ファブリック・エラー情報取得CRQクライアント要求824を実装するために提供される。また、これらは、PFエラー回復のためにIMP603が使用することもできる。
割り込みソース照会呼び出し918は、割り込みコントローラを仮想化するために、割り込みソースを取得するためにすべての割り込みについて使用される。したがって、図11に描かれている通り、割り込みソース照会呼び出し918は、クライアント・パーティション604とIMP603の両方が使用することができる。
DMA変換セットアップ呼び出し920は、入出力アドレスをシステム・アドレスに変換するための変換メカニズムをセットアップするために使用される。このようなアドレス変換メカニズムは入出力仮想化に必要である。PFは一般にIMP603へのDMA動作を実行する必要がないので、DMA変換セットアップ呼び出し920は、クライアント・パーティション604が使用することができるが、一般にIMP603が使用することはできない。
LPAR使用からのアダプタの追加/除去呼び出し922は、IMP603が使用することができるが、クライアント・パーティション604が使用することはできない。クライアント・パーティション604がそれを行えるようにすると、そのPFに関連する他のクライアント・パーティションに関連するVFについてセキュリティ問題を提起する可能性があるので、クライアント・パーティション604は、いずれの方法でもIOVアダプタ/エンドポイントを変更することが許可されておらず、したがって、LPAR使用からのアダプタの追加/除去呼び出し922を使用することができない。
1組の呼び出し924〜932は、IMP603とクライアント・パーティション604との間でリソースを受け渡すためにIMP603およびクライアント・パーティション604によって使用される呼び出しである。これらの呼び出し924〜932のそれぞれは、900に示されている通り、一方のパーティションまたはもう一方のパーティションのみによって使用可能である。論理リソース付与呼び出し924は、クライアント・パーティション604に再割り当てされるリソースをハイパーバイザ625に渡すためにIMP603によって使用され、次に、ハイパーバイザ625はトークンという、番号などのIDを返す。次にIMP603は、たとえば、リソース使用可能CRQ IMP要求854を介してトークンを渡すことにより、リソースを受信するクライアント・パーティション604にこのトークンを渡す。次にクライアント・パーティション604は、論理リソース受諾呼び出し926を使用して、そのリソースをIMP603からクライアント・パーティション604に再割り当てするハイパーバイザ625に受信したトークンを渡す。
論理リソース返却呼び出し928により、クライアント・パーティション604は、たとえば、以下に詳述するVF除去動作において、もはや必要ではないリソースを明け渡すことができる。論理リソース廃止(通常)呼び出し930と論理リソース廃止(強制)呼び出し932により、IMP603は、そもそもそれがクライアント・パーティション604に対して明け渡したリソースを取り戻すことができる。通常呼び出し930は、クライアント・パーティション604が論理リソース返却呼び出し928を介して返したリソースを取り戻すために使用される。強制呼び出し932は、たとえば、プログラム・エラーによるかまたはクライアント・パーティション・クラッシュなどの場合にクライアント・パーティション604が制御を放棄することを拒否したというエラー条件で使用される。強制呼び出し932は、クライアント・パーティション604に対する結果にかかわらず、クライアント・パーティションの使用からリソースを除去するようハイパーバイザ625に指示する。たとえば、強制呼び出し932は、クライアント・パーティション604をクラッシュさせる可能性がある。したがって、強制呼び出し932は例外的な状況でのみ使用される。
図12は、例示的な一実施形態により、ハードウェア管理コンソール(HMC)からプラットフォームへの1組の模範的な要求および応答の定義を例示する模範的な図である。特に、図12は、HMCからプラットフォーム・ファームウェアへの模範的な要求/応答1000を例示し、システム内のどのコンポーネントに対してこの要求が行われることが予想されるかならびにそのコンポーネントの予想応答を識別する。これらの呼び出しは、たとえば、インターフェース602および620のうちの1つ以上を介して、図6のHMC609によって行うことができる。たとえば、HMC609がIMP603またはクライアント・パーティション604のいずれかをターゲットにする呼び出しを行う場合、HMC609はRMCインターフェース602を介して呼び出しを行うことができる。HMC609がハイパーバイザ625をターゲットにする呼び出しを行う場合、その呼び出しはインターフェース620を介して行うことができる。これらのHMCからプラットフォームへの要求/応答1000の使用の例については、以下の図13〜図24の様々なものに関してより詳細に示す。
図12に図示されている通り、ハイパーバイザ625は、入出力ファブリック構成照会(ハイパーバイザ)要求1002の使用により、入出力ファブリック構成について照会を受けることができる。この要求1002は、たとえば、初期システム立ち上げ時に可能な入出力装置をすべて取得するためにHMC609が使用することができ、その結果、ユーザが構成を希望する様々なLPARに対する選択および割り当てのためにこれらをユーザに提示することができる。
IMP603は、入出力ファブリック構成照会(IMP)要求1004の使用により、入出力ファブリック構成について照会を受けることができる。この入出力ファブリック構成照会(IMP)要求1004は、たとえば、IOVアダプタ614がIMP603に割り当てられ、IMP603がIOVアダプタ614上のIOV機能を決定する時間を与えられていた後で、IOVアダプタ614上の可能な入出力PFおよびVFをすべて取得するためにHMC609が使用することができ、その結果、ユーザが構成を希望する様々なLPARに対するVFの選択および割り当てのためにこれらをユーザに提示することができる。
LPAR入出力構成設定要求1006は、HMC609のユーザが何を構成しようと決定したかをハイパーバイザ625に通知するためにHMC609によって使用される。この構成は、入出力構成のみならず、システム内の様々なLPARに割り当てられたCPUの数およびメモリの量などのLPAR構成特性も含む。
初期VFクライアント・パーティション割り当て設定要求1008は、HMC609のユーザが何を構成しようと決定したかをIMP603に通知するためにHMC609によって使用される。この構成は、様々なクライアント・パーティション604に対する、現在IMP603によって使用されているVFリソースの再割り当てを含む。これに応答して、IMP603は、IOVアダプタ614のIOV機能を使用可能にし、指定のクライアント・パーティション604とVFリソースを共用するための動作を実行する。
また、ハイパーバイザ625またはIMP603は、入出力アダプタまたはエンドポイントの電源を投入する時期および遮断する時期をHMC609から通知を受けることもできる。これは、IOA電源投入/遮断要求1010により実施することができる。
システムが動作可能である間および初期構成後に、システム601へのIOVアダプタ614の動的追加またはクライアント・パーティション604へのVFの動的追加を指示するためにHMCによって使用される、HMCからプラットフォームへの要求1012〜1016がいくつか存在する。IOVアダプタの動的割り当て要求1012は、そのアダプタを操作するために必要なシステム・リソース、たとえば、MMIOアドレス空間、DMA空間、および割り込みとともに、IOVアダプタ614をIMP603に割り振るよう、ハイパーバイザ625に通知するためにHMC609によって使用される。
ハイパーバイザ625がIOVアダプタの動的追加要求1012を完了すると、IMP603は、任意の追加について通知を受けることができる。IMPへのIOVアダプタの動的追加要求1014は、新しいIOVアダプタ614が追加されることをIMP603に通知する。これは、たとえば、以下に述べるように、システムへの入出力アダプタまたはエンドポイントのホット・プラグ追加時に行われる可能性がある。この要求1014は、そのファブリック構成にIOVアダプタを追加し、PF構成空間を初期設定し、PFデバイス・ドライバをロードするよう、IMP603に通知する。
IMP603へのVFの動的追加/除去要求1016は、VF用のリソース、たとえば、CRQメカニズムおよび特定のVFをサポートするために必要な任意のサポート構造を追加または除去し、追加すべき使用可能なVFが存在することまたは前にそのクライアント・パーティション604に割り振られたVFを除去する時期であることを知らせるためにCRQメカニズムを介してクライアント・パーティション604との通信を開始または終了するよう、IMP603に通知する。
システムが動作可能である間および初期構成後に、システムからのIOVアダプタの動的除去を指示するためにHMC609によって使用される、HMCからプラットフォームへの要求1018〜1020がいくつか存在する。IOVアダプタの動的除去(ハイパーバイザ)要求1018は、IOVアダプタ用のリソース、たとえば、割り当てられたMMIOアドレス空間、DMA空間、および割り込みをIMPから除去するよう、ハイパーバイザ625に通知するためにHMC609によって使用される。
IOVアダプタの動的除去(IMP)要求1020は、IOVアダプタが除去されることをIMP603に通知する。この要求を発行する前に、HMC609は、上述の通り、PFに関連するすべてのVFを使用中のクライアント・パーティション604から除去しておかなければならない。IOVアダプタの除去は、たとえば、システムからの入出力アダプタまたはエンドポイントのホット・プラグ除去時に行われる可能性がある。この要求1020は、PFの使用を停止し、リセット呼び出し908によりPFのリセットを要求し、デバイス・ドライバを除去し、OSのファブリック構成からPFを除去するよう、IMP603に通知する。
IMP603の重要な機能の1つは、あるPFに関連するVFを使用する複数のLPAR全域で共用されるか、またはあるVFにとって固有のものであるが、そのPFによる変更のためにアクセス可能であってはならない入出力アダプタまたはエンドポイントのリソースへの確実なアクセスを可能にすることである。ネットワーク入出力アダプタまたはエンドポイントのこのようなリソースの一例は、複数のVFによって共用されるPFに関連するネットワーク・アドレスまたはあるVFにとって固有のものであるネットワーク・アドレスである。このような装置固有リソースの管理は、本明細書では入出力アダプタまたはエンドポイントの「サウスサイド」管理という。これは、入出力アダプタ(IOA)またはエンドポイント・サウスサイド管理要求1022によってHMC609を介して実施され、このような管理はいずれもHMC609上のセキュリティ・アプリケーション、たとえば、ログオン・アプリケーションまたはその他の認証アプリケーションを介して保護される。IMP603がIOAに関するIOAサウスサイド管理要求1022を受信すると、IMP603はそのPF用のデバイス・ドライバ605にその要求を渡し、デバイス・ドライバ605は、その要求を実施するためにIOAへのPFインターフェースを介して装置固有要求を実行する。
HMCからプラットフォームへの要求1000のすべての現行状況は、前のコマンド完了および状況照会要求1024の使用により、元の要求のターゲットに対して作成することができる。これにより、HMC609は、一連のHMC要求を調整し、HMCインターフェースを介して前の要求の状況をユーザに対して示すことができる。動作によっては完了するのがかなり遅いものがあり、このような要求の現行状況にアクセスできることが望ましいので、このような要求が行われる可能性がある。
次に、この説明では、図8〜図12に上記で例示されている様々な要求および呼び出しの使用に関するより詳細な説明に取りかかる。図13〜図24は、例示的な諸実施形態のメカニズムの様々な動作の概要を示す流れ図である。図13〜図24に概要が示されている動作は、様々なメカニズム、たとえば、図6に描かれているHMC、ハイパーバイザ、CRQ構造、IMP、クライアント・パーティション、プラットフォーム・ファームウェア/ハードウェア、入出力エンドポイントなどによって実装することができる。したがって、適切であれば、図13〜図24に概要が示されている動作の実行に関与可能な例示的な諸実施形態のメカニズムの一例として、図6の諸要素を参照する。
流れ図の各ブロックおよび流れ図内の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることが理解されるであろう。これらのコンピュータ・プログラム命令は、マシンを生産するためにプロセッサまたはその他のプログラマブル・データ処理装置に提供することができ、プロセッサまたはその他のプログラマブル・データ処理装置上で実行される命令は流れ図の1つまたは複数のブロックに指定された機能を実装するための手段を作成する。また、これらのコンピュータ・プログラム命令は、特定の方法で機能するようプロセッサまたはその他のプログラマブル・データ処理装置に指示することができるコンピュータ可読メモリまたは記憶媒体に保管することもでき、コンピュータ可読メモリまたは記憶媒体に保管された命令は流れ図の1つまたは複数のブロックに指定された機能を実装する命令手段を含む装置(article of manufacture)を生産する。
したがって、流れ図の複数ブロックは、指定の機能を実行するための手段の組み合わせ、指定の機能を実行するための複数ステップの組み合わせ、および指定の機能を実行するためのプログラム命令手段をサポートする。また、流れ図の各ブロックおよび流れ図内の複数ブロックの組み合わせは、指定の機能またはステップを実行する特殊目的ハードウェアベースのコンピュータ・システムによって、または特殊目的ハードウェアとコンピュータ命令の組み合わせによって、実装可能であることが理解されるであろう。
さらに、流れ図は、例示的な諸実施形態内で実行される動作を実証するために提供されている。流れ図は、特定の動作または詳細には動作の順序に関する制限を明記または暗示するためのものではない。流れ図の動作は、本発明の精神および範囲を逸脱せずに特定の実装例に適合するように変更することができる。
図13〜図14は、例示的な一実施形態により、入出力仮想化(IOV)アダプタを有するシステムに関する模範的な「立ち上げ(bring-up)」動作の概要を示す流れ図を例示している。図13に図示されている通り、初期入出力ファブリック立ち上げ動作1100は、入出力ファブリックの電源投入が実行されることから始まる(ステップ1102)。入出力ファブリックの電源投入に応答して、ハイパーバイザ625は、入出力ファブリック611の構成空間を探索することなどにより、入出力ファブリック611に結合されたすべての入出力アダプタ614〜616を発見することができ(ステップ1104)、IOV構成空間の検出などにより、発見されたアダプタのうちのいずれがIOVアダプタ614であるかを発見することができる(ステップ1106)。
次にハイパーバイザ625は、ユーザへの提示などのために、入出力構成空間の探索から収集したすべての情報をHMC609に報告することができる(ステップ1108)。次にユーザは、LPARまたはフリー・リソースの使用可能プールにリソースを割り当てることができる。報告される情報としては、たとえば、ベンダIDおよびデバイスIDなどの項目を含み、入出力ファブリックおよびエンドポイント内に何があるかについて決定するためにユーザが必要とする情報を含むことができる。
次に、すべてのシステム・リソースをどのように割り振る必要があるかを決定することは、HMC609のユーザの責務である。これは、人間ではなく、HMC609内で実行される自動スクリプトあるいはシステム601のロジカル・パーティションにシステム・リソースを割り当てるかまたは割り振るための任意のその他の自動メカニズムによって実行できることも留意されたい。このため、HMC609は、模範的な実施形態では、収集した入出力ファブリックおよびエンドポイント情報をユーザに提示し(ステップ1110)、ユーザはリソースをどのように割り振るべきかを指定する(1112)。この割り振りは、入出力を含むだけでなく、プロセッサおよびメモリなどの他のシステム・リソースを含むことにもなる。ユーザがリソースの割り当てを行うと、これはハイパーバイザ625に報告される(ステップ1114)。
次にハイパーバイザ625は、MMIOアドレッシング、DMAアドレッシング、割り込み、およびその他のリソースを含む、各パーティションのリソースをセットアップすることができる(ステップ1116)。ハイパーバイザ625は、たとえば、パーティションに割り当てるべきアダプタを徹底的に探索することにより、アダプタが必要とするリソースの数を必ずしも前もって把握しているわけではなく、したがって、各アダプタについて、特定のシステムにとって関心のある可能性のあるすべてのアダプタを含むことになる十分なリソース、言わば複数リソースの「クランプ(clump)」を割り振ることができるだけである。アダプタが入出力アダプタであるかどうかという上記で行われた決定により、リソースのうちのいくつをそのアダプタに割り当てるかを決定することができ、IOVアダプタは一般に非IOVアダプタより多くのリソースを必要とする。リソースが使用可能である場合、各LPARは、これらのリソースにそのアダプタが割り当てられているものとしてこれらのリソースを扱おうとしなければならず、IMP603は、例外なく、それに割り当てられているIOVアダプタ614について割り当てられたリソースの量に基づくものである。ハイパーバイザ625が割り当てられたアダプタに関するLPARに十分なリソースを割り当てなかった結果として、LPARは割り当てられたアダプタの一部を使用できなくなる可能性がある。
ハイパーバイザ625は、IMP(複数も可)603に関するパーティション・ファームウェアをブートし、それぞれにどのIOV IOA(複数も可)が割り当てられているかに関する情報をIMP(複数も可)603に渡し、次に各IMP603用のOSをブートする(ステップ1118)。IMP OSは、IOV IOA、それぞれによってサポート可能なPFおよびVFの数、すべてのVFに必要なリソース、および任意のシステム・リソース制限、たとえば、使用可能なMMIOアドレス空間、使用可能なDMAアドレス空間、または使用可能な割り込みの数を発見する(ステップ1120)。
すべてのアダプタについて、IMP603は、IOVアダプタを構成する方法を決定するために、HMCまたはHMCのユーザが必要とする情報、たとえば、ベンダID、デバイスID、サポート可能なPFの数、およびサポート可能なVFの数をHMCに報告する(ステップ1122)。この情報は、たとえば、入出力ファブリック構成照会(IMP)要求1004によって、HMCに報告される。サポート可能な数に関する情報は、アドレス空間制限または使用可能な割り込みの数のように、そのアダプタにとって使用可能なリソースによって限定することができる。
HMCは、システムを構成しているユーザにこの情報を提示し、ユーザは使用すべきVFの数と、どのVFがどのクライアント・パーティションに割り当てられているかを決定する(ステップ1124)。HMCは、ユーザからハイパーバイザにIOV情報を提示し、次にそのハイパーバイザがIMP(複数も可)からクライアント・パーティション(複数も可)へのリンケージに必要なCRQデータ構造を作成する(ステップ1126)。この提示は、たとえば、LPAR入出力構成設定要求1006によって行われる。
プロセスは図14で続行し、そこでHMCはユーザからIMP(複数も可)に情報を提示し、次にそのIMPは適切な数のVFによりそれ自体のIOVアダプタを構成し、VFを受信するクライアント・パーティションと通信するために使用すべきCRQを初期設定する(ステップ1128)。この提示は、たとえば、初期VFクライアント・パーティション割り当て設定要求1008によって行われる。
次にハイパーバイザ625は、クライアント・パーティション(複数も可)604に関するパーティション・ファームウェア624をブートすることができ、これらのLPAR内のOSが使用するためにクライアント・パーティション(複数も可)604に入出力構成構造を渡すことができる(ステップ1130)。ハイパーバイザ625は、クライアント・パーティション(複数も可)604へのVF(複数も可)613の割り当て時に、クライアント・パーティション(複数も可)604からそのVF(複数も可)613への任意の入出力構成アクセスをブロックすることができる(ステップ1132)。
次に、クライアント・パーティション(複数も可)604用のOSをロードすることができる(ステップ1134)。クライアント・パーティション(複数も可)604は、そのCRQ(複数も可)608用のデバイス・ドライバ606をロードすることができ、CRQに関連するIMPとの通信を開始する(ステップ1136)。クライアント・パーティション604がCRQを介してIMP604への通信を開始した後、IMPは、VFを受信するクライアント・パーティションへのリソース、たとえば、MMIOアドレス空間、DMAウィンドウとも呼ばれるDMAアドレス空間、および割り込みの転送をハイパーバイザが開始することを要求する(ステップ1138)。これは、たとえば、論理リソース付与呼び出し924によって行われる。この呼び出しは、転送すべきリソースを表すトークンをハイパーバイザ625からIMP603に返す。これらのリソースは、この時点では実際にクライアント・パーティション604に転送されていない。
IMP603は、VFのベンダIDおよびデバイスIDとともに、最後のステップで入手したリソース・トークンを関連CRQ(複数も可)を介してクライアント・パーティション604に送信する(ステップ1140)。クライアント・パーティションは、IMPからCRQを介して渡されたトークンを使用し、渡されている関連リソースがそれに割り当てられるようにハイパーバイザ625を呼び出す(ステップ1142)。これは、たとえば、論理リソース受諾呼び出し926を使用し、最後のステップで入手したトークンを渡すことによって実施される。このトークンは、リソースを表し、割り当て中のVFを使用するために必要な対応リソースをマッピングするために必要な情報をハイパーバイザに提供する。
クライアント・パーティション604は、CRQを介してそれに渡されたベンダIDおよびデバイスIDを使用して、VF用のデバイス・ドライバ606をロードし(ステップ1144)、たとえば、構成読み取りCRQ要求814および構成書き込みCRQ要求816を介してCRQメカニズムにより構成アクセスを要求することによりそのVF613を構成する(ステップ1146)。次にデバイス・ドライバ606は、そのVF613を使用し始めることができる。次に動作は終了する。
システムが立ち上げられ、動作可能になると、新しい入出力アダプタまたはエンドポイントをシステムに動的に追加できることが望ましい。図15〜図17は、例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図を例示している。図15〜図17に図示されている通り、ホット・プラグ追加動作1200は、ホット・プラグ動作によりユーザに指示するためのユーザ・インターフェースを提供するホット・プラグ・アプリケーションをHMCコンソール609のユーザが開始することから始まる(ステップ1204)。ホット・プラグ・アプリケーションにより、ユーザまたはアプリケーションは、そこに新しい入出力アダプタまたはエンドポイント、たとえば、入出力エンドポイント614を差し込む、入出力ファブリック611内の空の入出力スロットを選択することができる(ステップ1206)。次にユーザは、新しい入出力アダプタ(IOA)またはエンドポイントを差し込むことができ(ステップ1208)、HMC609は、IOAが差し込まれたことを報告することができる(ステップ1210)。当業者であれば、新しいIOAを未使用スロットに挿入し、システムにホット・プラグ・アプリケーションを自動的に呼び出させることにより、PCIeなどの入出力バス用のホット・プラグ・アプリケーションを自動的に呼び出すことができることを認識している。次にHMC609は、IOAの電源を投入するよう、ハイパーバイザ625にメッセージを送信することができ、その構成情報を取得することができ(ステップ1212)、動作は図16のステップ1214に継続する。
ハイパーバイザ625が初期ファブリック立ち上げ動作1100で情報を収集したのと同様に、ハイパーバイザ625は、IOAを発見することができ(ステップ1214)、IOA構成情報をHMC609に報告することができる(ステップ1216)。
HMC609は、構成情報をユーザに提示することができる(ステップ1218)。ユーザは、どのIMPが追加されたIOVアダプタをどれに割り当てるかを指定することができ(ステップ1220)、HMC609は、このリソース割り振りをハイパーバイザ625に報告することができ(ステップ1222)、ハイパーバイザ625は、新しいIMP603に関するパーティションを作成することができ、IMPのリソース、たとえば、MMIOアドレッシング、DMAアドレッシング、および割り込みをセットアップすることができる(ステップ1224)。
上述の初期ケースのように、ハイパーバイザ625は、たとえば、IMP603に割り当てるべきIOVアダプタを徹底的に探索することにより、IOVアダプタが必要とするリソースの数を必ずしも前もって把握しているわけではない。したがって、ハイパーバイザ625は、各IOVアダプタについて、特定のシステムにとって関心のある可能性のあるすべてのIOVアダプタを含むことになる十分なリソース、すなわち、複数リソースの一部分または「クランプ」を割り振ることができるだけである。リソースが使用可能である場合、IMP603は、これらのリソースにそのアダプタが割り当てられているものとしてこれらのリソースを扱おうとしなければならない。ハイパーバイザ625が割り当てられたアダプタに関するIMP603に十分なリソースを割り当てなかった結果として、LPARは割り当てられたアダプタを使用できなくなる可能性がある。
ハイパーバイザ625は、IMP603に関するパーティション・ファームウェアをブートし、それにどのIOV IOAが割り当てられているかに関する情報をIMP603に渡し、次に各IMP603用のOSをブートする(ステップ1226)。IMP OSは、IOV IOA、それぞれによってサポート可能なPFおよびVFの数、すべてのVFに必要なリソース、および任意のシステム・リソース制限、たとえば、使用可能なMMIOアドレス空間、使用可能なDMAアドレス空間、または使用可能な割り込みの数を発見する(ステップ1228)。
新しいIOVアダプタについて、IMP603は、IOVアダプタを構成する方法を決定するために、HMC609またはHMC609のユーザが必要とする情報、たとえば、ベンダID、デバイスID、サポート可能なPFの数、およびサポート可能なVFの数をHMC609に報告する(ステップ1230)。この情報は、たとえば、入出力ファブリック構成照会(IMP)要求1004によって、HMC609に報告される。サポート可能な数に関する情報は、アドレス空間制限または使用可能な割り込みの数のように、そのアダプタにとって使用可能なリソースによって限定することができる。
HMC609は、システムを構成しているユーザにこの情報を提示し、ユーザは使用すべきVFの数と、どのVFがどのクライアント・パーティションに割り当てられているかを決定する(ステップ1232)。HMC609は、ユーザからハイパーバイザ625にIOV情報を提示し、次にそのハイパーバイザがIMP603からクライアント・パーティション(複数も可)へのリンケージに必要なCRQデータ構造を作成する(ステップ1234)。この提示は、たとえば、LPAR入出力構成設定要求1006によって行われる。
プロセスは図17で続行し、そこでHMCはユーザからIMP603に情報を提示し、次にそのIMPは適切な数のVFによりIOVアダプタを構成し、VFを受信するクライアント・パーティションと通信するために使用すべきCRQを初期設定する(ステップ1236)。この提示は、たとえば、初期VFクライアント・パーティション割り当て設定要求1008によって行われる。
次にHMC609は、新しいIOA614からVF613を受信するクライアント・パーティション(複数も可)604にVFの動的追加要求1016を発行することができる。これは、VF(複数も可)を追加するためのクライアント・パーティション604のプロセスを開始するものである(ステップ1238)。クライアント・パーティション(複数も可)604は、そのCRQ(複数も可)608用のデバイス・ドライバ606をロードし、CRQ(複数も可)608に関連するIMP603との通信を開始することができる(ステップ1240)。クライアント・パーティション604がCRQを介してIMP603への通信を開始した後、IMP603は、VFを受信するクライアント・パーティション604へのリソース、たとえば、MMIOアドレス空間、DMAウィンドウとも呼ばれるDMAアドレス空間、および割り込みの転送をハイパーバイザ625が開始することを要求する(ステップ1242)。これは、たとえば、論理リソース付与呼び出し924によって行われる。この呼び出しは、転送すべきリソースを表すトークンをハイパーバイザ625からIMP603に返す。これらのリソースは、この時点では実際にクライアント・パーティション604に転送されていない。
IMP603は、VFのベンダIDおよびデバイスIDとともに、最後のステップで入手したリソース・トークンを関連CRQ(複数も可)を介してクライアント・パーティション604に送信する(ステップ1244)。クライアント・パーティション604は、IMP603からCRQを介して渡されたトークンを使用し、渡されている関連リソースがそれに割り当てられるようにハイパーバイザ625を呼び出す(ステップ1246)。これは、たとえば、論理リソース受諾呼び出し926を使用し、最後のステップで入手したトークンを渡すことによって実施される。このトークンは、リソースを表し、割り当て中のVFを使用するために必要な対応リソースをマッピングするために必要な情報をハイパーバイザに提供する。
クライアント・パーティション604は、CRQを介してそれに渡されたベンダIDおよびデバイスIDを使用して、VF用のデバイス・ドライバ606をロードする(ステップ1248)。VF(複数も可)613用のデバイス・ドライバ(複数も可)606は、たとえば、図8〜図10の構成読み取りCRQ要求814および構成書き込みCRQ要求816を介してそれ自体のCRQ608によりIMP603に対してそのVF(複数も可)613を構成することができ(ステップ1250)、その新たに構成されたVF(複数も可)613を使用し始めることができる。次に動作は終了する。
例示的な諸実施形態のシステム601の入出力ファブリック611に入出力アダプタまたはエンドポイントを動的に追加することに加えて、入出力アダプタまたはエンドポイントを入出力ファブリック611から動的に除去できるようにすることは有益なことである。図18は、例示的な一実施形態により、システムからIOVアダプタを除去するための模範的なホット・プラグ動作の概要を示す流れ図である。図18に図示されている通り、ホット・プラグ除去動作1300は、HMCコンソール609のユーザがホット・プラグ・アプリケーションを開始することから始まる(ステップ1302)。ユーザは、入出力エンドポイント614などの入出力アダプタ(IOA)またはエンドポイントを除去することを選択することができる(ステップ1304)。
HMC609は、除去すべきIOAからのPF612およびVF613というリソースを含むパーティションがある場合に、どのパーティションであるかを決定する(ステップ1306)。HMC609は、たとえば、IOVアダプタの動的除去(IMP)要求1020の使用により、IOVアダプタを除去するようIMP603に通知することができる(ステップ1308)。次にIMP603は、IOA上のVF613を含む各クライアント・パーティション604に、たとえば、リソース返却CRQ IMP要求856を介して、そのVFを使用から除去するための要求を送信することができる(ステップ1310)。クライアント・パーティション(複数も可)604は、そのVF(複数も可)613の使用を停止し(ステップ1312)、たとえば、論理リソース返却呼び出し928により返されたリソースをハイパーバイザ625に通知することができ、たとえば、動的除去CRQ要求826により終了したVF動作を介してIMP603に終了を通知することができる(ステップ1314)。
IMPパーティション603は、たとえば、論理リソース廃止(通常)呼び出し930を介してクライアント・パーティション(複数も可)604による使用からVF(複数も可)613を除去するようパーティション・ファームウェア623に通知することができる(ステップ1316)。VF除去が完了すると、次にIMP603は、IMP603から入出力アダプタを除去するプロセスを完了することができる。次にIMP603は、たとえば、LPAR使用からのアダプタの除去922の使用により、関連入出力アダプタ612のリソースをそのパーティションから除去することができる(ステップ1318)。
次にIMP603は、HMC609に入出力アダプタ除去を報告することができる(ステップ1320)。この時点でIOA614はもはや使用されておらず、HMC609は、たとえば、IOA電源投入/遮断要求1010を介してIOA614への電源をオフにするようIMP603にメッセージを送信することができる(ステップ1322)。次にIMP603は、IOA614の電源を遮断することができ、IMP603からIOA614のリソースを除去することができ、HMC609に完了を報告することができる(ステップ1324)。次にHMCは、たとえば、IOVアダプタの動的除去(ハイパーバイザ)1018の使用により、IMP603へのIOAの割り当てを除去するようハイパーバイザ625に通知し(ステップ1326)、次にHMC609はユーザに完了を報告することができ(ステップ1328)、ユーザは、望ましい場合にはIOA614を抜くことができ、動作は完了する。
入出力仮想化およびVFの実装例の有用な特徴の1つは、ロード・バランシングに必要なときにこれらのリソースを動的にシフトするためにシステム内に十分なリソースを有する能力である。これは、それからLPARに追加するためのVFを選択できる使用可能なリソースのプールを有することによるか、または必ずしもVFのリソースを適切に使用していないLPARからVFを除去し、そのVFのリソースをより適切に使用できるLPARにそのVFを追加することにより、行うことができる。図19は、例示的な一実施形態により、ロジカル・パーティション(LPAR)に仮想機能(VF)を動的に追加するための模範的な動作の概要を示す流れ図である。図19に概要が示されている動作は、たとえば、システム601の動作を最適化するために必要なときに、あるLPARから他のLPARにVFのリソースをシフトするために使用することができる。
図19に図示されている通り、VF追加動作1400は、HMC609のユーザが動的再構成(DR:Dynamic Reconfiguration)アプリケーションを開始することから始まる(ステップ1402)。ユーザは、追加すべきVF613の使用可能リストから選択することができ、どのクライアント・パーティションにVF613を追加すべきかを指定することができる(ステップ1404)。HMC609は、たとえば、LPAR入出力構成設定要求1006を介して、この情報をハイパーバイザ625に提示することができる(ステップ1406)。また、ハイパーバイザ625は、IMP603およびクライアント・パーティション604のためのCRQ607および608を作成し、クライアントCRQ608と適切なIMP CRQ607との間のリンケージも作成することができる(ステップ1408)。
ハイパーバイザ625は、要求された動作の完了を通知することにより、動作が進行準備完了であることをHMC609に通知することができる(ステップ1410)。次にHMC609は、IMP603がCRQ607を動的に追加することを要求することができ、たとえば、VFの動的追加要求1016を介して、どのクライアント・パーティションがそのVFを取得しているかに関する情報を渡す(ステップ1412)。次にHMC609は、VFの動的追加要求1016を介して、VF613を動的に追加するようクライアント・パーティション604に要求することができる(ステップ1414)。クライアント・パーティション604は、新しいCRQ608を検出することができ、新しいCRQ608用のデバイス・ドライバ606をロードすることができる(ステップ1416)。
クライアント・パーティション604がCRQを介してIMP603への通信を開始した後(ステップ1418)、IMP603は、VFを受信するクライアント・パーティション604へのリソース、たとえば、MMIOアドレス空間、DMAウィンドウとも呼ばれるDMAアドレス空間、および割り込みの転送をハイパーバイザ625が開始することを要求する(ステップ1420)。これは、たとえば、論理リソース付与呼び出し924によって行われる。この呼び出しは、転送すべきリソースを表すトークンをハイパーバイザ625からIMP603に返す。これらのリソースは、この時点では実際にクライアント・パーティション604に転送されていない。
IMP603は、VFのベンダIDおよびデバイスIDとともに、最後のステップで入手したリソース・トークンを関連CRQ(複数も可)を介してクライアント・パーティション604に送信する(ステップ1422)。クライアント・パーティションは、IMP603からCRQを介して渡されたトークンを使用し、関連リソースがそれに割り当てられるようにハイパーバイザ625を呼び出す(ステップ1424)。これは、たとえば、論理リソース受諾呼び出し926を使用し、最後のステップで入手したトークンを渡すことによって実施される。このトークンは、リソースを表し、割り当て中のVFを使用するために必要な対応リソースをマッピングするために必要な情報をハイパーバイザ625に提供する。
次にVF613用のデバイス・ドライバ606をロードすることができ、そのデバイス・ドライバ606は、たとえば、構成読み取りCRQ要求814および構成書き込みCRQ要求816を介してCRQ608によりそのVF613をIMP603に対して構成することができる(ステップ1426)。最後に、HMC609は動作824の完了をユーザに通知することができ、動作は完了する(ステップ1428)。
図20は、例示的な一実施形態により、LPARからVFを動的に除去するための模範的な動作の概要を示す流れ図である。図20の動的VF除去動作1500は、システム601の様々なLPAR間で入出力リソースを移動する能力のもう一方の部分である。すなわち、VFは、図20に図示されている動作を使用して、あるLPARとの関連付けから除去することができ、上記の図19に概要が示されているVF追加動作を使用して、他のLPARに追加することができる。
図20に図示されている通り、VF除去動作1500は、ユーザがHMC609でDRアプリケーションを開始することから始まる(ステップ1504)。ユーザは、VF613などの除去すべきVFを選択することができ(ステップ1506)、HMC609は、たとえば、VF動的除去要求1016を、そのVFを所有するIMP603に送信して、VF除去プロセスを開始することができる(ステップ1508)。IMP603は、たとえば、リソース返却CRQ IMP要求856の使用により、VFの使用を停止し、VFリソースを返すよう、クライアント・パーティション604に通知する(ステップ1510)。クライアント・パーティション604は、この要求を受信し、指示通り、VF613の使用を停止することができる(ステップ1512)。
クライアント・パーティション604は、たとえば、IMP603でCRQ607の動的除去動作を引き起こす動的除去CRQメッセージ826により終了したVF動作を介して、動的除去による終了をCRQ608を介してIMP603に通知することができる(ステップ1514)。クライアント・パーティション604は、たとえば、論理リソース返却呼び出し928を介してパーティションによる使用からVF613用のリソースを除去するよう、ハイパーバイザ625に通知することができる。次にハイパーバイザ625ならびにOS632は、関連VF613のリソースをクライアント・パーティション604から除去することができる(ステップ1516)。IMP603はVFの除去をHMC609に報告することができる(ステップ1518)。HMC609はユーザに動作の完了を通知することができ(ステップ1520)、動作は終了する。
入出力アダプタまたはエンドポイントを動的に追加および除去し、VFおよびそれに関連するリソースをLPAR間でシフトできることに加えて、仮想化システムでは、エラーから回復できることがエラー処理の頑強性(robustness)のために有用である。例示的な諸実施形態は、エラー情報を検索し、エラー情報をログ記録し、VFをリセットおよび構成し、未処理の入出力動作を再始動するよう試みることにより、エラーから回復できるようにするためのメカニズムを提供する。この動作は、以下に記載する通り、図21に概要が示されている。
図21は、例示的な一実施形態により、VFが被るエラーからのエラー回復のための模範的な動作の概要を示す流れ図である。図21に概要が示されている動作は、エラーが存在することをデバイス・ドライバが認識でき、適切に回復できるまで、VFへのすべてのDMAおよびMMIOを停止する既存の技法を使用する。しかし、図21の動作は、CRQメカニズムを使用してVFに関するエラー回復プロセスを制御するためにこの既存の技法を拡大するように、例示的な諸実施形態のメカニズムを使用する。
図21に図示されている通り、VFエラー回復動作1600は、VFをMMIO停止状態(MMIO Stopped State)およびDMA停止状態(DMA StoppedState)にしたエラーが発生した後で開始する。この状態では、VFからのDMA動作はいずれも完了せず、MMIO保管動作はMMIO停止状態である間に廃棄され、MMIOロード動作では、すべて1のデータが返されることになる。エラー回復のプロセスは、デバイス・ドライバ、たとえば、デバイス・ドライバ606がMMIOロード動作からすべて1のデータを受信することから始まる(ステップ1604)。デバイス・ドライバ606は、すべて1のデータの取り戻しを予想しておらず(または予想しなければならないかどうかが確かではない)、たとえば、VF613についてVFエラー状態照会CRQ要求820を使用して、VF状態情報を取得することができる(ステップ1606)。VF613はこの時点でエラー状態にあるので、IMP603は、照会に対して、VF613がMMIO停止およびDMA停止エラー状態にあると応答することができる(ステップ1608)。デバイス・ドライバ606は、たとえば、入出力ファブリック・エラー情報取得CRQ要求824を使用して、その後の問題判別のために入出力ファブリック611内のエラー・レジスタに関する情報を入手することができる(ステップ1610)。IMP603はエラー情報で照会に応答することができ(ステップ1612)、デバイス・ドライバ606はその後の分析のためにその情報をエラー・ログにログ記録することができる(ステップ1614)。
この時点でデバイス・ドライバ606は、そのVFをリセットする準備が完了し、動作を再始動しようと試みることができる。デバイス・ドライバ606は、たとえば、VFリセットCRQ要求818を使用してVF613をリセットすることができ(ステップ1616)、IMP603は、完了応答で要求に応答することができる(ステップ1618)。次にデバイス・ドライバ606は、CRQメカニズム、具体的には構成読み取りCRQ要求814および構成書き込みCRQ要求816を使用して、そのVF613を構成することができる(ステップ1620)。デバイス・ドライバ606は未処理の入出力動作を再始動しようと試み(ステップ1622)、動作は終了する。
前述の通り、IMP603の重要な機能の1つは、あるPFに関連するVFを使用する複数のLPAR全域で共用されるか、またはあるVFにとって固有のものであるが、そのPFによる変更のためにアクセス可能であってはならないIOAまたはエンドポイントのリソースへの確実なアクセスを可能にすることである。ネットワーク入出力アダプタ(IOA)またはエンドポイントのこのようなリソースの一例は、複数のVFによって共用されるPFに関連するネットワーク・アドレスまたはあるVFにとって固有のものであるネットワーク・アドレスである。このような装置固有リソースの管理は、入出力アダプタまたはエンドポイントのIOA「サウスサイド」管理という。図22は、例示的な一実施形態により、ネットワーク・アダプタ上のネットワーク・アドレスを変更するための模範的なIOAサウスサイド管理動作の概要を示す流れ図である。図22は、具体的にはネットワーク・アダプタ上のネットワーク・アドレスの変更を対象とするが、あるPFに関連するVFを使用するか、またはあるVFにとって固有のものである複数のLPAR全域で共用されるその他のリソースについて、同様の動作を実行できることを認識されたい。
図22に図示されている通り、動作は、HMCコンソール609のユーザがVF613用のネットワーク・アドレスを変更するためのアプリケーションを開始することから始まる(ステップ1704)。ユーザは、VF613およびアドレスを選択することができる(またはアプリケーションは、動作のコンテキストに基づいてアドレスを提供することができる)(ステップ1706)。HMC609は、VF613を制御するPF612およびIMP603を決定することができ、IMP603にIOAサウスサイド管理要求1022を送信し、IOAサウスサイド管理要求1022内のVF613およびアドレス情報を渡すことができる(ステップ1708)。IMP603はPFデバイス・ドライバ605に情報を渡すことができ、PFデバイス・ドライバ605は処理のためにPF612にそれを渡すことができる(ステップ1710)。HMC609は、コマンド完了についてIMP603に照会することができ、完了すると、動作が完了したことをユーザに通知することができ(ステップ1712)、動作は終了する。
システム601内のクライアント・パーティション604は、システム601が動作可能である間に動作を終了できることを認識されたい。クライアント・パーティション内のソフトウェアの回復不能エラーまたはハードウェアが割り当てられているパーティションのみに影響する回復不能ハードウェア・エラーなど、クライアント・パーティション604が終了する可能性のある多種多様な理由が存在する可能性がある。図23は、例示的な一実施形態により、クライアント・パーティション終了のための模範的な動作の概要を示す流れ図である。図23に概要が示されている動作1800は、クライアント・パーティションが終了してリブートするか、または永続的に終了するケースを対象とする。
図23に図示されている通り、クライアント・パーティション604が何らかの理由で終了すると動作が始まる(ステップ1802)。ハイパーバイザ625は、たとえば、回復不能ソフトウェア・エラーによるかまたは回復不能ハードウェア・エラー時のハードウェアからのマシン・チェック割り込みによるパーティションからハイパーバイザへのパニック呼び出し(panic call)によりクライアント・パーティションが終了する時期を検出することができ、クライアント・パーティション604が終了したことを検出することができる(ステップ1804)。次にハイパーバイザ625は、たとえば、パーティションの初期セットアップの一部として設定されたユーザのリブート・ポリシーにより判断された通り、クライアント・パーティション604がリブートのために設定されているかどうかを判断することができる(ステップ1806)。
クライアント・パーティション604がリブートのために設定されていない場合、ハイパーバイザ625は、たとえば、故障中の(failing)クライアント・パーティション604内のVF613に関連するすべてのCRQ607および608において、パートナ・パーティション終了CRQイベント806をポストすることができる(ステップ1808)。それが終了であるということは、故障中のクライアント・パーティション604がいつでも直ちにリブートされるわけではないことを意味し、したがって、IMP(複数も可)603は、終了メッセージに関連するCRQ607を除去し、たとえば、論理リソース廃止(強制)呼び出し932の使用により、前に割り振られたリソースの使用をハイパーバイザが廃止することを要求し(ステップ1810)、動作は終了する。
クライアント・パーティション604がリブートされるという判断が行われた場合(ステップ1806)、ハイパーバイザ625は、たとえば、故障中のクライアント・パーティション604内のすべてのVF613に関連するPF612に関連するすべてのCRQ607において、パートナ・パーティション故障CRQイベント804をポストすることができ、これにより、クライアント・パーティション604がリブートされ、瞬間的に復帰できることを関連するIMP(複数も可)603に通知する(ステップ1814)。この場合、IMP(複数も可)603は、たとえば、パートナ・パーティション接続CRQイベント802を待ち、その時点でクライアント・パーティション604との通信を再確立することができる(ステップ1816)。次に動作は終了する。
システム601の動作中に、IMP603が故障する可能性があることも可能であることを認識されたい。IMP603は、多くのクライアント・パーティション604内の潜在的に多くのVF813のためにサーバとして動作しているので、故障した場合にリブートするように必ず設定されることが予想される。図24は、例示的な一実施形態により、IMPパーティション終了のための模範的な動作1900の概要を示す流れ図である。図24に図示されている通り、動作1900は、IMPパーティションの終了から始まる(ステップ1902)。ハイパーバイザ625は、たとえば、回復不能ソフトウェア・エラーによるかまたは回復不能ハードウェア・エラー時のハードウェアからのマシン・チェック割り込みによるパーティションからハイパーバイザへのパニック呼び出しにより、IMP604のパーティション終了を検出することができ、IMP604のリブートを開始する(ステップ1904)。
ハイパーバイザ625は、たとえば、リブート中のIMP603内のPF(複数も可)612に関連するすべてのVF613に関するクライアント・パーティションのCRQ608において、パートナ・パーティション故障CRQイベント804をポストすることができる(ステップ1906)。クライアント・パーティション604は、CRQ608の一時的使用不能状況(temporarily unavailable status)に気づく可能性があるが、IMP603がリブートされている間にCRQ608が必要ではない場合、それらはパートナ・パーティション故障CRQイベント・メッセージ804を無視することができる。そうではない場合、クライアント・パーティション604は、たとえば、CRQ608による動作を続行するために、VF613に関連するCRQ608において、パートナ・パーティション接続CRQイベント802の受信によって示される通り、CRQ接続の再確立を待つ(ステップ1908)。次に動作は終了する。
したがって、例示的な諸実施形態は、構成、エラー管理、およびサウスサイド・アダプタ固有管理のための管理ソフトウェアが、ハイパーバイザ内ではなく、個別の管理パーティション内で実行できるようにするメカニズムを提供する。ハイパーバイザに対するパフォーマンス上の影響を防止するために、入出力依存コードをハイパーバイザの中に入れないようにすることが望ましい。その上、たとえば、異なるアダプタ固有のサウスサイド管理およびエラー回復ソフトウェア用のコードの更新の必要性による頻繁な更新によるハイパーバイザ・コードの不安定性を最小限にするために、入出力依存コードを個別の管理パーティションに入れることが望ましい。したがって、例示的な諸実施形態のメカニズムは、不安定性を最小限にしながら、ハイパーバイザのより効率的な動作を提供する。
例示的な諸実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形を取ることができることを認識されたい。模範的な一実施形態では、例示的な諸実施形態のメカニズムは、ソフトウェアで実装され、そのソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されない。
さらに、例示的な諸実施形態は、コンピュータまたは任意の命令実行システムによりあるいはそれに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形を取ることができる。この説明のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを収容、保管、通信、伝搬、または伝送可能な任意の装置にすることができる。
この媒体は、電子、磁気、光、電磁、赤外線、または半導体システム(あるいは装置またはデバイス)もしくは伝搬媒体にすることができる。コンピュータ可読媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクを含む。光ディスクの現在の例としては、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
プログラム・コードの保管または実行あるいはその両方に適したデータ処理システムは、システム・バスを介して記憶素子に直接または間接的に結合された少なくとも1つのプロセッサを含むことになる。記憶素子としては、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを検索しなければならない回数を削減するために少なくとも何らかのプログラム・コードの一時記憶を提供するキャッシュ・メモリとを含むことができる。
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接あるいは介在する入出力コントローラにより、システムに結合することができる。データ処理システムが介在する私設網または公衆網を介してその他のデータ処理システムあるいはリモート・プリンタまたは記憶装置に結合された状態になれるようにするために、ネットワーク・アダプタもシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在使用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
本発明の説明は、例示および解説のために提示されたものであり、網羅するためまたは開示された形式に本発明を限定するためのものではない。多くの変更および変形は当業者にとって明白なものになるであろう。この実施形態は、本発明の原理、実用的な適用例を最も良く説明するため、ならびにその他の当業者が企図された特定の用途に適した様々な変更を含む様々な実施形態について本発明を理解できるようにするために、選択され記載されたものである。
当技術分野で一般に知られているPCIeファブリック・トポロジを組み込むシステムを例示する模範的な図である。 当技術分野で一般に知られているシステム仮想化を例示する模範的な図である。 仮想化層を使用して、PCIルート複合体の入出力を仮想化するための第1の手法を例示する模範的な図である。 最初から共用されるPCI入出力アダプタを使用して、PCIルート複合体の入出力を仮想化するための第2の手法を例示する模範的な図である。 PCIe入出力仮想化対応エンドポイントの模範的な図である。 例示的な一実施形態により、IOV対応エンドポイントまたはアダプタが使用されるシステム構造の模範的な図である。 例示的な一実施形態により、コマンド/応答キュー(CRQ)構造の模範的な実装例の詳細を例示する模範的な図である。 例示的な一実施形態により、1組の模範的なCRQハイパーバイザ・イベントの定義を例示する模範的な図である。 例示的な一実施形態により、予想される対応応答とともに1組のCRQクライアント要求の定義を例示する模範的な図である。 例示的な一実施形態により、予想される対応応答とともに1組のCRQ IMP要求の定義を例示する模範的な図である。 例示的な一実施形態により、ロジカル・パーティション(LPAR)からプラットフォーム・ファームウェアへの1組の模範的な呼び出しの定義を例示する模範的な図である。 例示的な一実施形態により、ハードウェア管理コンソール(HMC)からプラットフォームへの1組の模範的な要求および応答の定義を例示する模範的な図である。 例示的な一実施形態により、入出力仮想化(IOV)アダプタを有するシステムに関する模範的な「立ち上げ」動作の概要を示す流れ図である。 例示的な一実施形態により、入出力仮想化(IOV)アダプタを有するシステムに関する模範的な「立ち上げ」動作の概要を示す流れ図である。 例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、システムからIOVアダプタを除去するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、ロジカル・パーティション(LPAR)に仮想機能(VF)を動的に追加するための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、LPARからVFを動的に除去するための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、VFが被るエラーからのエラー回復のための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、ネットワーク・アダプタ上のネットワーク・アドレスを変更するための模範的なIOAサウスサイド管理動作の概要を示す流れ図である。 例示的な一実施形態により、クライアント・パーティション終了のための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、IMPパーティション終了のための模範的な動作の概要を示す流れ図である。
符号の説明
310:ホストCPUセット
320:SI(システム・イメージ)1
330:SI(システム・イメージ)2
340:仮想化層
350:PCIルート複合体
360:PCIeスイッチ
370:PCIeエンドポイント
380:PCIeエンドポイント
390:PCIeエンドポイント

Claims (20)

  1. データ処理システム内で、入出力(I/O)仮想化を管理するための方法であって、
    前記データ処理システム内で前記データ処理システムのリソースの関連部分を有する1つ以上のクライアント・パーティションを作成するステップと、
    前記データ処理システム内で入出力仮想化管理パーティション(IMP)を作成するステップと、
    前記IMPにより、前記データ処理システムに関連する1つ以上の入出力仮想化(IOV)対応入出力エンドポイントを識別するステップと、
    前記IMPにより、前記1つ以上のIOV対応入出力エンドポイントの仮想機能を前記1つ以上のクライアント・パーティションに割り当てるステップと、
    前記データ処理システムのハイパーバイザにより、前記1つ以上のクライアント・パーティションへの仮想機能の前記割り当てに基づいて、前記IMPと前記1つ以上のクライアント・パーティションとの間で通信するための少なくとも1つの通信構造を作成するステップと、
    前記1つ以上のクライアント・パーティションのうちの少なくとも1つのクライアント・パーティションにより、前記少なくとも1つの通信構造を使用して、前記1つ以上のIOV対応入出力エンドポイントの1つ以上の仮想機能により仮想機能構成動作を実行するステップと、
    を含む方法。
  2. 前記データ処理システムの前記ハイパーバイザにより、前記IMPによる管理のために前記データ処理システムのリソースの一部分を前記IMPに割り当てるステップと、
    前記IMPにより、前記1つ以上のクライアント・パーティションに割り当てられた前記仮想機能に必要ないくつかのリソースを決定するステップと、
    前記データ処理システム内で実装すべきいくつかの仮想機能と、前記1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定するステップと、
    仮想機能が割り当てられる前記1つ以上のクライアント・パーティションから前記ハイパーバイザへの1つ以上の呼び出しを実行し、前記一部分のリソースからのリソースを前記1つ以上のクライアント・パーティションに割り当てるステップと、
    をさらに含む、請求項1に記載の方法。
  3. 前記データ処理システム内で実装すべきいくつかの仮想機能と、前記1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定する前記ステップが、
    それぞれの識別されたIOV対応入出力エンドポイントによってサポートされるいくつかの仮想機能を決定するステップと、
    前記識別されたIOV対応入出力エンドポイントと、それぞれの識別されたIOV対応入出力エンドポイントによってサポートされる前記いくつかの仮想機能とを記述する情報をユーザに提示するステップと、
    前記データ処理システム内で実装すべきいくつかの仮想機能と、前記1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを示すユーザ入力を受信するステップと、
    を含む、請求項2に記載の方法。
  4. 前記IMPにより、仮想機能が割り当てられた前記1つ以上のクライアント・パーティションへのリソースの転送を前記ハイパーバイザが開始することを要求するステップと、
    前記IMPにおいて、前記ハイパーバイザから、前記要求に応答して、1つ以上のトークンを受信するステップと、
    前記IMPから、前記通信構造を介して前記1つ以上のクライアント・パーティションに前記トークンを送信するステップであって、前記1つ以上のクライアント・パーティションが前記1つ以上のトークンを使用して、前記ハイパーバイザからリソースを入手する
    ステップと、
    をさらに含む、請求項2に記載の方法。
  5. 前記IMPが、前記1つ以上のIOV対応入出力エンドポイントにおいて、前記IMPに割り当てられた物理機能用の構成空間と、前記IMPに割り当てられた物理機能に属す仮想機能用の構成空間のみにアクセスすることができる、請求項1に記載の方法。
  6. 前記1つ以上のクライアント・パーティションが、前記1つ以上のIOV対応入出力エンドポイントにおいて、前記1つ以上のクライアント・パーティションに割り当てられた仮想機能の構成空間に直接アクセスすることができず、前記少なくとも1つの通信構造を使用して、前記IMPを介してのみ、前記1つ以上のクライアント・パーティションに割り当てられた仮想機能の前記構成空間にアクセスすることができる、請求項1に記載の方法。
  7. 前記IMPが、前記1つ以上のIOV対応入出力エンドポイントにおいて、あるクライアント・パーティションに割り当てられた仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスを許可し、前記1つ以上のIOV対応入出力エンドポイントにおいて、前記クライアント・パーティションに割り当てられていない仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスをブロックする、請求項6に記載の方法。
  8. 前記1つ以上のクライアント・パーティションに対する前記仮想機能の割り当てを指示し、前記入出力仮想化管理動作の実行を指示するハードウェア管理コンソール(HMC)から入力を受信するステップをさらに含む、請求項1に記載の方法。
  9. 前記HMCからの前記入力が、新しいIOV対応入出力エンドポイントを前記データ処理システムに追加するためにホット・プラグ動作を開始するためのコマンドであり、前記入出力仮想化管理動作を実行することが、 前記新しいIOV対応入出力エンドポイントを前記IMPに割り当てるステップと、
    前記新しいIOV対応入出力エンドポイントの前記追加に基づいて前記IMP構成するステップと、
    前記1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションに前記新しいIOV対応入出力エンドポイントの少なくとも1つの仮想機能を動的に追加するステップと、
    前記新しいIOV対応入出力エンドポイントの前記少なくとも1つの仮想機能の前記動的追加に基づいて前記1つ以上のクライアント・パーティション内の前記少なくとも1つのクライアント・パーティションにリソースを割り振るステップと、
    前記少なくとも1つの通信構造を使用して、前記IMPを介して前記新しいIOV対応入出力エンドポイントの前記少なくとも1つの仮想機能を構成するステップと、
    を含む、請求項8に記載の方法。
  10. 前記HMCからの前記入力が、前記データ処理システムから既存のIOV対応入出力エンドポイントを除去するためにホット・プラグ動作を開始するためのコマンドであり、前記入出力仮想化管理動作を実行することが、 除去すべき前記IOV対応入出力エンドポイントの仮想機能に関連するリソースを有する前記1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションを識別するステップと、
    前記仮想機能と、前記仮想機能に関連するリソースを、前記少なくとも1つのクライアント・パーティションによる使用から除去するステップと、
    物理機能と、前記物理機能に関連するリソースを、前記IMPによる使用から除去するステップと、
    除去すべき前記IOV対応入出力エンドポイントの電源を遮断するステップと、
    を含む、請求項8に記載の方法。
  11. 前記HMCからの前記入力が、前記データ処理システムを動的に再構成するためのコマンドであり、前記入出力仮想化管理動作を実行することが、
    前記1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションに追加するためのIOV対応入出力エンドポイントの仮想機能の選択を受信するステップと、
    前記IMPおよび前記選択されたクライアント・パーティション内で前記選択された仮想機能用の少なくとも1つの通信構造を作成するステップと、
    前記選択されたクライアント・パーティションへのリソースの転送を要求する、前記IMPから前記ハイパーバイザへの要求を送信するステップと、
    前記IMPにおいて、前記要求に応答して、前記ハイパーバイザから少なくとも1つのトークンを受信するステップと、
    前記選択されたクライアント・パーティションに前記少なくとも1つのトークンを提供するステップと、
    前記選択されたクライアント・パーティション内で選択された仮想機能用のリソースをセットアップするステップと、
    前記選択されたクライアント・パーティションにより、前記少なくとも1つのトークンを使用して、前記ハイパーバイザからリソースを入手するステップと、
    前記選択されたクライアント・パーティション内で前記選択された仮想機能用のデバイス・ドライバをロードするステップと、
    を含む、請求項8に記載の方法。
  12. 前記HMCからの前記入力が、前記データ処理システムを動的に再構成するためのコマンドであり、前記入出力仮想化管理動作を実行することが、
    前記1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションから除去するための入出力エンドポイントの仮想機能の選択を受信するステップと、
    前記選択されたクライアント・パーティションによりさらに使用することから前記選択された仮想機能を除去するステップと、
    前記選択されたクライアント・パーティション内で選択された仮想機能用のリソースを除去するステップと、
    を含む、請求項8に記載の方法。
  13. そこにコンピュータ可読プログラムが記録されたコンピュータ可読媒体を含むコンピュータ・プログラムであって、前記コンピュータ可読プログラムが、データ処理システム内で実行されたときに、前記データ処理システムに、
    前記データ処理システム内で前記データ処理システムのリソースの関連部分を有する1つ以上のクライアント・パーティションを作成するステップと、
    前記データ処理システム内で入出力仮想化管理パーティション(IMP)を作成するステップと、
    前記IMPにより、前記データ処理システムに関連する1つ以上の入出力仮想化(IOV)対応入出力エンドポイントを識別するステップと、
    前記IMPにより、前記1つ以上のIOV対応入出力エンドポイントの仮想機能を前記1つ以上のクライアント・パーティションに割り当てるステップと、
    前記データ処理システムのハイパーバイザにより、前記1つ以上のクライアント・パーティションへの仮想機能の前記割り当てに基づいて、前記IMPと前記1つ以上のクライアント・パーティションとの間で通信するための少なくとも1つの通信構造を作成するステップと、
    前記1つ以上のクライアント・パーティションのうちの少なくとも1つのクライアント・パーティションにより、前記少なくとも1つの通信構造を使用して、前記1つ以上のIOV対応入出力エンドポイントの1つ以上の仮想機能により仮想機能構成動作を実行するステップと、
    を実行させる、コンピュータ・プログラム。
  14. 前記コンピュータ可読プログラムが、前記データ処理システムに、
    前記データ処理システムの前記ハイパーバイザにより、前記IMPによる管理のために前記データ処理システムのリソースの一部分を前記IMPに割り当てるステップと、
    前記IMPにより、前記1つ以上のクライアント・パーティションに割り当てられた前記仮想機能に必要ないくつかのリソースを決定するステップと、
    前記データ処理システム内で実装すべきいくつかの仮想機能と、前記1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定するステップと、
    仮想機能が割り当てられる前記1つ以上のクライアント・パーティションから前記ハイパーバイザへの1つ以上の呼び出しを実行し、前記一部分のリソースからのリソースを前記1つ以上のクライアント・パーティションに割り当てるステップと、
    をさらに実行させる、請求項13に記載のコンピュータ・プログラム。
  15. それぞれの識別されたIOV対応入出力エンドポイントによってサポートされるいくつかの仮想機能を決定するステップと、
    前記識別されたIOV対応入出力エンドポイントと、それぞれの識別されたIOV対応入出力エンドポイントによってサポートされる前記いくつかの仮想機能とを記述する情報をユーザに提示するステップと、
    前記データ処理システム内で実装すべきいくつかの仮想機能と、前記1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを示すユーザ入力を受信するステップと、
    により、前記コンピュータ可読プログラムが、前記データ処理システムに、前記データ処理システム内で実装すべきいくつかの仮想機能と、前記1つ以上のクライアント・パーティションのうちのどのクライアント・パーティションに各仮想機能を割り当てるべきかを決定する前記ステップを実行させる、請求項14に記載のコンピュータ・プログラム。
  16. 前記コンピュータ可読プログラムが、前記データ処理システムに、
    前記IMPにより、仮想機能が割り当てられた前記1つ以上のクライアント・パーティションへのリソースの転送を前記ハイパーバイザが開始することを要求するステップと、
    前記IMPにおいて、前記ハイパーバイザから、前記要求に応答して、1つ以上のトークンを受信するステップと、
    前記IMPから、前記通信構造を介して前記1つ以上のクライアント・パーティションに前記トークンを送信するステップであって、前記1つ以上のクライアント・パーティションが前記1つ以上のトークンを使用して、前記ハイパーバイザからリソースを入手するステップと、
    をさらに実行させる、請求項14に記載のコンピュータ・プログラム。
  17. 前記IMPが、前記1つ以上のIOV対応入出力エンドポイントにおいて、前記IMPに割り当てられた物理機能用の構成空間と、前記IMPに割り当てられた物理機能に属す仮想機能用の構成空間のみにアクセスすることができる、請求項13に記載のコンピュータ・プログラム。
  18. 前記1つ以上のクライアント・パーティションが、前記1つ以上のIOV対応入出力エンドポイントにおいて、前記1つ以上のクライアント・パーティションに割り当てられた仮想機能の構成空間に直接アクセスすることができず、前記少なくとも1つの通信構造を使用して、前記IMPを介してのみ、前記1つ以上のクライアント・パーティションに割り当てられた仮想機能の前記構成空間にアクセスすることができる、請求項13に記載のコンピュータ・プログラム。
  19. 前記IMPが、前記1つ以上のIOV対応入出力エンドポイントにおいて、あるクライアント・パーティションに割り当てられた仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスを許可し、前記1つ以上のIOV対応入出力エンドポイントにおいて、前記クライアント・パーティションに割り当てられていない仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスをブロックする、請求項18に記載のコンピュータ・プログラム。
  20. 各クライアント・パーティションがデータ処理システムのリソースの関連部分を有する1つ以上のクライアント・パーティションと、
    前記1つ以上のクライアント・パーティションと通信状態にある入出力仮想化管理パーティション(IMP)と、
    前記IMPと通信状態にある1つ以上の入出力エンドポイントと、
    前記IMPおよび前記1つ以上のクライアント・パーティションに関連して提供される少なくとも1つの通信構造と、
    を含み、
    前記IMPが、前記データ処理システムに関連する1つ以上の入出力仮想化(IOV)対応入出力エンドポイントを識別し、
    前記IMPが、前記1つ以上のIOV対応入出力エンドポイントの仮想機能を前記1つ以上のクライアント・パーティションに割り当て、
    前記1つ以上のクライアント・パーティションの少なくとも1つのクライアント・パーティションが、前記少なくとも1つの通信構造を使用して、前記1つ以上のIOV対応入出力エンドポイントの1つ以上の仮想機能により仮想機能構成動作を実行する、データ処理システム。
JP2008305650A 2007-12-03 2008-11-28 データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム Expired - Fee Related JP5305866B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/949,419 US8141094B2 (en) 2007-12-03 2007-12-03 Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
US11/949419 2007-12-03

Publications (2)

Publication Number Publication Date
JP2009151767A JP2009151767A (ja) 2009-07-09
JP5305866B2 true JP5305866B2 (ja) 2013-10-02

Family

ID=40677110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008305650A Expired - Fee Related JP5305866B2 (ja) 2007-12-03 2008-11-28 データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム

Country Status (3)

Country Link
US (1) US8141094B2 (ja)
JP (1) JP5305866B2 (ja)
CN (1) CN101452424B (ja)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8141093B2 (en) * 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8141092B2 (en) 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
WO2009145098A1 (ja) * 2008-05-28 2009-12-03 日本電気株式会社 I/o接続システム、方法及びプログラム
JP2010009396A (ja) * 2008-06-27 2010-01-14 Toshiba Corp 計算機システム、および計算機システムのデバイス制御方法
US7913024B2 (en) * 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US8914684B2 (en) * 2009-05-26 2014-12-16 Vmware, Inc. Method and system for throttling log messages for multiple entities
CN101630270B (zh) * 2009-07-22 2013-06-26 成都市华为赛门铁克科技有限公司 数据处理系统和方法
EP2513876A1 (en) * 2009-12-18 2012-10-24 Nxp B.V. Protected mode for global platform compliant smart cards
US8364879B2 (en) 2010-04-12 2013-01-29 International Business Machines Corporation Hierarchical to physical memory mapped input/output translation
US8316169B2 (en) 2010-04-12 2012-11-20 International Business Machines Corporation Physical to hierarchical bus translation
US8606984B2 (en) 2010-04-12 2013-12-10 International Busines Machines Corporation Hierarchical to physical bus translation
US8327055B2 (en) 2010-04-12 2012-12-04 International Business Machines Corporation Translating a requester identifier to a chip identifier
US8429323B2 (en) 2010-05-05 2013-04-23 International Business Machines Corporation Memory mapped input/output bus address range translation
US8650349B2 (en) 2010-05-26 2014-02-11 International Business Machines Corporation Memory mapped input/output bus address range translation for virtual bridges
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8650337B2 (en) * 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8949499B2 (en) 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US8271710B2 (en) 2010-06-24 2012-09-18 International Business Machines Corporation Moving ownership of a device between compute elements
US9396000B2 (en) 2010-06-25 2016-07-19 Intel Corporation Methods and systems to permit multiple virtual machines to separately configure and access a physical device
US8261128B2 (en) * 2010-08-04 2012-09-04 International Business Machines Corporation Selection of a domain of a configuration access
US8832345B2 (en) * 2010-08-24 2014-09-09 Belkin International, Inc. System for communicating between two electrical devices and method therefore
US8412863B2 (en) * 2010-10-19 2013-04-02 Hitachi, Ltd. Storage apparatus and virtual port migration method for storage apparatus
US9135044B2 (en) * 2010-10-26 2015-09-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch
US8561064B2 (en) * 2010-10-26 2013-10-15 International Business Machines Corporation Retaining ownership of a virtual function while an adapter is replaced
US8484654B2 (en) * 2010-11-23 2013-07-09 International Business Machines Corporation Determining suitable network interface for partition deployment/re-deployment in a cloud environment
US8839240B2 (en) * 2010-11-29 2014-09-16 International Business Machines Corporation Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device
US8447891B2 (en) 2011-01-11 2013-05-21 International Business Machines Corporation Dynamically assigning virtual functions to client applications
US8364871B2 (en) * 2011-01-25 2013-01-29 International Business Machines Corporation Providing virtual functions after an input/output adapter is moved from a first location to a second location
US8726276B2 (en) * 2011-01-26 2014-05-13 International Business Machines Corporation Resetting a virtual function that is hosted by an input/output adapter
JP5585844B2 (ja) * 2011-03-25 2014-09-10 株式会社日立製作所 仮想計算機の制御方法及び計算機
JP5548647B2 (ja) * 2011-04-25 2014-07-16 株式会社日立製作所 計算機システムでの部分障害処理方法
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
JP5846836B2 (ja) * 2011-10-11 2016-01-20 株式会社日立製作所 仮想計算機、仮想計算機システム、及び仮想計算機制御方法
US8645600B2 (en) 2011-11-10 2014-02-04 International Business Machines Corporation Configuring expansion component interconnect (‘ECI’) physical functions on an ECI device in a computing system
US9311127B2 (en) 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9411654B2 (en) 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9626207B2 (en) 2011-12-16 2017-04-18 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US8880766B2 (en) * 2012-04-05 2014-11-04 Dell Products L.P. Methods and systems for removal of information handling resources in a shared input/output infrastructure
JP5930046B2 (ja) * 2012-08-17 2016-06-08 富士通株式会社 情報処理装置、及び情報処理装置の制御方法
JP5874879B2 (ja) * 2012-11-26 2016-03-02 株式会社日立製作所 I/oデバイスの制御方法及び仮想計算機システム
US9047208B1 (en) * 2012-12-10 2015-06-02 Qlogic, Corporation Method and system of configuring virtual function in peripheral devices
US9342249B2 (en) 2013-01-02 2016-05-17 International Business Machines Corporation Controlling partner partitions in a clustered storage system
US20140245300A1 (en) * 2013-02-27 2014-08-28 Lsi Corporation Dynamically Balanced Credit for Virtual Functions in Single Root Input/Output Virtualization
US9135101B2 (en) 2013-03-01 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Virtual function timeout for single root input/output virtualization controllers
EP2811413B1 (en) 2013-05-02 2016-10-19 Huawei Technologies Co., Ltd. Computer system, access method and apparatus for peripheral component interconnect express endpoint device
US9304849B2 (en) 2013-06-12 2016-04-05 International Business Machines Corporation Implementing enhanced error handling of a shared adapter in a virtualized system
US9323620B2 (en) 2013-06-12 2016-04-26 International Business Machines Corporation Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system
US9317317B2 (en) 2013-06-12 2016-04-19 International Business Machines Corporation Implementing concurrent device driver maintenance and recovery for an SRIOV adapter in a virtualized system
US9720775B2 (en) * 2013-06-12 2017-08-01 International Business Machines Corporation Implementing concurrent adapter firmware update for an SRIOV adapter in a virtualized system
JP6203272B2 (ja) 2013-09-03 2017-09-27 株式会社アキブシステムズ I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
US9983893B2 (en) 2013-10-01 2018-05-29 Red Hat Israel, Ltd. Handling memory-mapped input-output (MMIO) based instructions using fast access addresses
US9916173B2 (en) * 2013-11-25 2018-03-13 Red Hat Israel, Ltd. Facilitating execution of MMIO based instructions
US9639478B2 (en) 2014-01-17 2017-05-02 International Business Machines Corporation Controlling direct memory access page mappings
US9870335B2 (en) 2014-04-03 2018-01-16 International Business Machines Corporation Implementing sideband control structure for PCIE cable cards and IO expansion enclosures
CN105814864B (zh) * 2014-11-21 2019-06-07 华为技术有限公司 一种输入输出io请求处理方法及文件服务器
CN107645407B (zh) 2014-12-08 2021-02-12 华为技术有限公司 一种适配QoS的方法和装置
US9720720B2 (en) * 2015-02-25 2017-08-01 Red Hat Israel, Ltd. Dynamic management of assignment and number of virtual functions on SR-IOV capable hypervisors
US10114675B2 (en) 2015-03-31 2018-10-30 Toshiba Memory Corporation Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
WO2016171876A1 (en) * 2015-04-23 2016-10-27 Alibaba Group Holding Limited Method and system for scheduling input/output resources of a virtual machine
CN106155764A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置
CN106201839B (zh) 2015-04-30 2020-02-14 阿里巴巴集团控股有限公司 一种业务对象的信息加载方法和装置
CN106209741B (zh) 2015-05-06 2020-01-03 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
CN106708819A (zh) 2015-07-17 2017-05-24 阿里巴巴集团控股有限公司 一种数据缓存的预热方法及其装置
KR102473665B1 (ko) * 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
CN106487708B (zh) 2015-08-25 2020-03-13 阿里巴巴集团控股有限公司 网络访问请求控制方法和装置
US10067900B2 (en) * 2015-08-25 2018-09-04 Oracle International Corporation Virtualized I/O device sharing within a distributed processing node system
CN106886429B (zh) * 2015-12-16 2020-11-06 华为技术有限公司 一种加载驱动程序的方法和服务器
US20170206091A1 (en) * 2016-01-20 2017-07-20 International Business Machines Corporation Sharing ownership of an input/output device with an existing partition
US9846610B2 (en) 2016-02-08 2017-12-19 Red Hat Israel, Ltd. Page fault-based fast memory-mapped I/O for virtual machines
CN107515775B (zh) * 2016-06-15 2021-11-19 华为技术有限公司 一种数据传输方法及装置
US10545771B2 (en) * 2016-12-02 2020-01-28 International Business Machines Corporation Concurrent maintenance of an input/output adapter backing a virtual network interface controller
US10606487B2 (en) 2017-03-17 2020-03-31 International Business Machines Corporation Partitioned memory with locally aggregated copy pools
US10387188B2 (en) * 2017-11-09 2019-08-20 International Business Machines Corporation Virtual machine scoping of data on a hypervisor
US20200150993A1 (en) * 2018-11-13 2020-05-14 Cavium, Llc. Flexible resource assignment to physical and virtual functions in a virtualized processing system
US11204796B2 (en) * 2019-04-11 2021-12-21 International Business Machines Corporation Dynamic assignment of interrupts based on input/output metrics
CN110427246B (zh) * 2019-06-29 2023-06-20 西南电子技术研究所(中国电子科技集团公司第十研究所) 多核虚拟分区重构系统
US11194611B2 (en) 2019-07-29 2021-12-07 International Business Machines Corporation Dynamic assignment of interrupts based on input/output metrics
US20210382737A1 (en) * 2020-06-03 2021-12-09 Baidu Usa Llc Data protection with dynamic resource isolation for data processing accelerators
CN113254160B (zh) * 2021-06-28 2022-04-08 北京大禹智芯科技有限公司 一种io资源请求方法和装置

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US114989A (en) * 1871-05-16 Improvement in pumps
US940357A (en) * 1907-10-21 1909-11-16 Edward Posson Car-frame.
US940360A (en) * 1909-03-18 1909-11-16 Jerre T Richards Bar-bender.
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US20030005068A1 (en) 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
US6842857B2 (en) 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US6880002B2 (en) 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7565398B2 (en) 2002-06-27 2009-07-21 International Business Machines Corporation Procedure for dynamic reconfiguration of resources of logical partitions
US7836211B2 (en) 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US20040158834A1 (en) 2003-02-06 2004-08-12 International Business Machines Corporation Apparatus and method for dynamically allocating resources of a dead logical partition
US7073002B2 (en) 2003-03-13 2006-07-04 International Business Machines Corporation Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system
US7085862B2 (en) * 2003-03-13 2006-08-01 International Business Machines Corporation Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition
US7134052B2 (en) 2003-05-15 2006-11-07 International Business Machines Corporation Autonomic recovery from hardware errors in an input/output fabric
US8301809B2 (en) 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US7237139B2 (en) 2003-08-07 2007-06-26 International Business Machines Corporation Services heuristics for computer adapter placement in logical partitioning operations
US7502842B2 (en) 2003-09-25 2009-03-10 International Business Machines Corporation Auto-configuration of an internal VLAN network interface
US7171417B2 (en) 2003-09-30 2007-01-30 International Business Machines Corporation Method and apparatus for improving performance and scalability of an object manager
US7254652B2 (en) * 2003-09-30 2007-08-07 International Business Machines Corporation Autonomic configuration of port speeds of components connected to an interconnection cable
US7111102B2 (en) 2003-10-06 2006-09-19 Cisco Technology, Inc. Port adapter for high-bandwidth bus
US20070061441A1 (en) * 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
US20070067366A1 (en) 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
WO2005036405A1 (en) * 2003-10-08 2005-04-21 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US7234037B2 (en) 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US7660322B2 (en) 2003-12-11 2010-02-09 International Business Machines Corporation Shared adapter
US7487258B2 (en) 2004-01-30 2009-02-03 International Business Machines Corporation Arbitration in a computing utility system
US8782024B2 (en) 2004-02-12 2014-07-15 International Business Machines Corporation Managing the sharing of logical resources among separate partitions of a logically partitioned computer system
CN1661561A (zh) * 2004-02-25 2005-08-31 英特维数位科技股份有限公司 具省电特性的操作系统共享应用程序的架构及其方法
US7530071B2 (en) 2004-04-22 2009-05-05 International Business Machines Corporation Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
US20050246453A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7249208B2 (en) 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
US7240177B2 (en) 2004-05-27 2007-07-03 International Business Machines Corporation System and method for improving performance of dynamic memory removals by reducing file cache size
IL163314A (en) 2004-08-02 2010-06-16 Lsi Technologies Israel Ltd Booting from a storage area network
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US20060123111A1 (en) 2004-12-02 2006-06-08 Frank Dea Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US7694047B1 (en) * 2005-02-17 2010-04-06 Qlogic, Corporation Method and system for sharing input/output devices
US20060195663A1 (en) 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7543305B2 (en) 2005-03-24 2009-06-02 International Business Machines Corporation Selective event registration
US20060236063A1 (en) 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
US7415034B2 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US20060250945A1 (en) 2005-04-07 2006-11-09 International Business Machines Corporation Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system
CN101040552B (zh) * 2005-04-18 2010-12-01 捷讯研究有限公司 控制软件版本更新的方法和系统
US7620741B2 (en) 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US8223745B2 (en) 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7949766B2 (en) 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US8521912B2 (en) 2006-01-12 2013-08-27 Broadcom Corporation Method and system for direct device access
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
US8230153B2 (en) 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US20070192518A1 (en) 2006-02-14 2007-08-16 Aarohi Communications, Inc., A California Corporation Apparatus for performing I/O sharing & virtualization
US7613749B2 (en) 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US8677034B2 (en) * 2006-04-28 2014-03-18 Hewlett-Packard Development Company, L.P. System for controlling I/O devices in a multi-partition computer system
US7613847B2 (en) * 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
JP5068056B2 (ja) 2006-10-11 2012-11-07 株式会社日立製作所 障害回復方法、計算機システム及び管理サーバ
US9098347B2 (en) 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US7734859B2 (en) 2007-04-20 2010-06-08 Nuon, Inc Virtualization of a host computer's native I/O system architecture via the internet and LANs
US8464260B2 (en) 2007-10-31 2013-06-11 Hewlett-Packard Development Company, L.P. Configuration and association of a supervisory virtual device function to a privileged entity
US7945436B2 (en) 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
US8141092B2 (en) 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition
US8141093B2 (en) 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8359415B2 (en) 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US7913024B2 (en) 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment

Also Published As

Publication number Publication date
US20090144731A1 (en) 2009-06-04
CN101452424A (zh) 2009-06-10
JP2009151767A (ja) 2009-07-09
CN101452424B (zh) 2011-09-07
US8141094B2 (en) 2012-03-20

Similar Documents

Publication Publication Date Title
JP5305866B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US8141093B2 (en) Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US11061712B2 (en) Hot-plugging of virtual functions in a virtualized environment
JP5733628B2 (ja) 仮想計算機を制御する計算機装置及び仮想計算機の制御方法
US10671423B2 (en) Hot-plug hardware and software implementation
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US9411654B2 (en) Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
JP3954088B2 (ja) 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構
US9384060B2 (en) Dynamic allocation and assignment of virtual functions within fabric
JP5018252B2 (ja) デバイス割り当て変更方法
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
US20130191821A1 (en) Transparent update of adapter firmware for self-virtualizing input/output device
US20060064523A1 (en) Control method for virtual machine
TW200817920A (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US20100100892A1 (en) Managing hosted virtualized operating system environments
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
US8813072B1 (en) Inverse virtual machine
US9110731B1 (en) Hard allocation of resources partitioning
CN116069584A (zh) 将监控服务扩展到可信云运营商域中
US11829772B2 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
Shaw et al. Virtualization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20121029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121211

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130625

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees