Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

割り込みリソース管理機能

割り込みリソース管理機能を使用すると、ドライバの割り込み構成を動的に管理することで、デバイスドライバで使用する割り込みリソースを増やすことができます。割り込みリソース管理機能を使用しないと、割り込み処理の構成は通常、ドライバの attach (9E) ルーチンでのみ行われます。割り込みリソース管理機能では、システムの変更をモニターし、その変更に応答して各デバイスに許可する割り込みベクターの数を再計算して、ドライバの新しい割り込みベクター割り当ての影響を受ける、関連するドライバに通知します。関連するドライバとは、コールバックハンドラを登録したドライバのことです (Callback Interfacesを参照)。割り込みベクターの再割り当ての原因になる可能性のある変更には、デバイスの追加や削除、明示的な要求が含まれます (Modify Number of Interrupt Vectors Requestedを参照)。

割り込みリソース管理機能は、すべての Oracle Solaris プラットフォームで利用できるわけではありません。この機能は、MSI-X 割り込みを利用する PCIe デバイスでのみ利用できます。


注 - 割り込みリソース管理機能を利用するドライバは、この機能が利用できないときに適切に順応できる必要があります。

割り込みリソース管理機能が利用できる場合、ドライバは、この機能が利用できない場合に割り当てられるよりも多くの割り込みベクターにアクセスできます。ドライバで利用できる割り込みベクターの数が増えると、ドライバが割り込み条件を処理する効率が向上することがあります。

    割り込みリソース管理機能では、次の制約に応じて、関連するドライバに許可される割り込みベクターの数を動的に調整します。

  • 利用可能な合計数。システムでは割り込みベクターの数に制限があります。

  • 要求される合計数。ドライバにはこれより少ない数を許可できますが、ドライバが要求した割り込みベクターよりも多くの割り込みベクターを許可することはできません。

  • ほかのドライバとの公平性。利用可能な割り込みベクターの合計数は、各ドライバが要求する合計数と関連して公平な方法で、多数のドライバによって共有されます。

    指定された任意の時点でデバイスで利用できるようになる割り込みベクターの数は、次の条件により異なることがあります。

  • ほかのデバイスが動的にシステムに追加されたり削除されたりする

  • ロードに応答してドライバが要求する割り込みベクターの数はドライバにより動的に変更される

    ドライバは、割り込みリソース管理機能を利用するために次のサポートを提供する必要があります。

  • コールバックサポート。ドライバは、利用可能な割り込みの数がシステムよって変更されたときに通知されるように、コールバックハンドラを登録する必要があります。ドライバは、割り込みの使用率を増やしたり減らしたりできる必要があります。

  • 割り込みの要求。ドライバは、使用する割り込みの数を指定する必要があります。

  • 割り込みの使用率。ドライバは、次の点に基づいて、任意の時点で正確な数の割り込みを要求する必要があります。

    • ドライバのハードウェアが生成する可能性のある割り込み条件

    • それらの条件を並列で処理するために使用できるプロセッサの数

  • 割り込みの柔軟性。ドライバには、利用可能な割り込みの現在の数に最適な方法で、1 つ以上の割り込み条件を各割り込みベクターに割り当てるために十分な柔軟性が必要です。ドライバでは、利用可能な割り込みの数が任意の時点で増減したときに、この割り当てを再構成する必要が生じる場合があります。