web-dev-qa-db-ja.com

PCIeパススルー用のIOMMUグループの分割

Kvmとlibvirtを使用して、グラフィックカードを仮想マシンにパススルーしようとしています。同じIOMMUグループにあると思われるイーサネットカードをvfio-pciドライバーにバインドせずにカードをパススルーしようとすると、エラーメッセージが表示されます。

ホストでそのイーサネットポートを使用したいので、IOMMUグループを分割できるかどうか疑問に思っています。これらのことについての参照は このブログ投稿 のようです。

この例で使用されているものよりも新しいカーネルは、PCIe ACSを直接サポートしていなくても、このチップセットの分離機能を公開するためのサポートが追加されたため、このIOMMUグループを分割します。

しかし、私はカーネル4.10を使用しており、このブログ投稿は2014年のものであるため、このスペースに新しい開発があったかどうか疑問に思っています。

私の基本的な質問は、IOMMUグループが分割可能であることを確認できますか?その場合、どのように分割できますか?

1
Max Ehrlich

IOMMUグループを分割するネイティブメソッドを見つけることができませんでした:分割可能である場合、起動時に分割されます

ただし、IOMMUの配置をオーバーライドするパッチがあります

このスレッドこのパッチ につながります。これはデフォルトでubuntu16.10に付属している4.8カーネルに対して正常にビルドされます。

このパッチを適用して新しいカーネルを構築した後、IOMMUグループが分割され、パススルーが希望どおりに機能しました。理論的にはデバイス間でDMAをリークする可能性がありますが、それが発生したことは聞いたことがなく、問題なく機能します。

1
Max Ehrlich