PCI-STUBよりもVFIO-PCIを使用する利点は何ですか?
この記事「OVMFを介したPCIパススルー」を見つけましたが、すべての利点を示しているわけではなく、VFIOにはいくつかの利点があると言っているだけです。
ありがとう
承認された回答:
PCI-STUBはダミードライバーです。これは元々、
元のKVMデバイスの割り当てが、割り当てられたデバイスにホストドライバーとして実際にバインドされなかったために開発されました。
デバイスを取得して使用を開始しただけです。
KVMは適切なデバイスドライバーではないため、KVMがユーザーに割り当てている間に、別のホストドライバーがデバイスへのバインドを試みる可能性があります。 pci-stubドライバーは、KVMがそれを利用している間、デバイスのドライバースロットを占有するために導入されました。
pci-stubとは対照的に、vfioはユーザースペースドライバー用の完全なインターフェイスです。
デバイスへの安全で分離されたIOMMU保護されたアクセスを提供します。
vfioの利点:
-
pci-stubはカーネルに組み込まれていることが多く、これにより、ロード可能なモジュールであるドライバーよりも早くデバイスにバインドできます。この設定では、ホストドライバーがデバイスに到達する前に、pci-stubにデバイスにバインドするように指示できるため、
ゲストに割り当てるためにデバイスを元の状態に保つことができます。 -
vfioのその他のあまり使用されないケースは、IOMMUグループ化です。
複数のデバイスを含むグループがある場合、グループ内のすべてのデバイスは
互換性のあるドライバーにバインドされている必要があります。そうでない場合、vfioはグループを
実行不可能と見なします。これは、ユーザー制御デバイスと同じ
グループ内のホストドライバーが互いに分離されないため、
これを防ぐことを目的としています。 pci-stubを使用すると、このドライバーがホストに代わって
DMAを開始しないことがわかっているため、互換性があると見なされます。したがって、IOMMUグループにエンドポイントがあり、グループを実行可能にするために何かを行う必要があるが、ユーザーがそのエンドポイントにアクセスできないようにしたい場合は、デバイスをpci-stubにバインドできます。これにより、侵害されたユーザーがvfioインターフェイスを介してvfio-pciにバインドされているグループ内の他のデバイスを単純に開くことができなかったため、デバイスをvfio-pciにバインドするよりも少し保護が強化されます。