PCI-STUBおよびVFIO-PCI

PCI-STUBおよびVFIO-PCI

PCI-STUBと比較してVFIO-PCIを使用すると、どのような利点があるかを尋ねたいと思います。

この記事を見つけました」OVMFによるPCIパススルー「しかし、彼らはすべての利点に言及しているわけではありませんが、VFIOにはいくつかの利点があるだけです。

ありがとう

ベストアンサー1

PCI-STUBは仮想ドライバです。これは、ネイティブKVMデバイスの割り当てがホストドライバとして割り当てられたデバイスに実際にバインドされておらず、単にデバイスをキャッチして使用し始めるため、元々開発されました。 KVMが正しいデバイスドライバではないため、KVMがユーザーにデバイスを割り当てると、他のホストドライバがデバイスにバインドしようとする可能性があります。 pci-stubドライバはデバイスのドライバスロットを占めるために導入され、KVMはそれを使用します。

pci-stubとは異なり、vfioはユーザー空間ドライバへの完全なインターフェイスです。これは、デバイスへの安全で隔離されたIOMMU保護アクセスを提供します。

vfioの利点:

  1. pci-stubは通常カーネルに組み込まれており、ロード可能モジュールのドライバの前にデバイスにバインドできます。この設定では、ホストドライバがデバイスにアクセスする前にデバイスにバインドするようにpci-stubに指示し、ゲストに割り当てることができるようにデバイスを元の状態に保つことができます。

  2. vfioのもう1つの小規模ユースケースはIOMMUのグループ化です。複数のデバイスを含むグループがある場合は、グループ内のすべてのデバイスを互換性のあるドライバにバインドする必要があります。それ以外の場合、vfioはグループを実行できないと見なします。これは、ホストドライバが互いに分離されていないため、ユーザーコントロールデバイスと同じグループにあることを防ぐためです。 pci-stubの場合、ドライバがホストに代わってDMAを起動しないことがわかっているので、互換性があるとします。

    したがって、IOMMUグループにグループを実行可能にするために何かを行う必要があるエンドポイントがありますが、ユーザーがそのグループにアクセスできないようにしたい場合は、デバイスをpci-stubにバインドできます。感染したユーザーはvfioインターフェイスを介してvfio-pciにバインドされているグループ内の他のデバイスを開くことができないため、デバイスをvfio-pciにバインドするのに比べていくつかの追加の保護が追加されます。

おすすめ記事