こんにちは、
IMX95 SoC上でPCIパススルー機能を備えた仮想マシンを使用したいと考えています。しかし、SMMUはキャッシュコヒーレントではなく、vfio_pciドライバーがそれを必要としているため、これは全く不可能のようです。関連項目:
https://community.nxp.com/t5/i-MX-Processors/i-MX95-19x19-EVK-SMMU-coherent-table-walks-IDR0-COHACC-...
そして
https://github.com/NXP/dpdk/blob/25.11-qoriq/nxp/README_imx95_enetc_vf_vfio#L32
IOMMUを無効にすることはできません。また、カーネルパラメータが次のように書かれているので、役に立つとは思えません。
MODULE_PARM_DESC(enable_unsafe_noiommu_mode, "安全でない、IOMMUなしモードを有効にします。このモードはデバイス隔離を提供せず、DMA変換もホストカーネル保護も提供せず、 仮想マシンへのデバイス割り当てには使用できず、RAWIO権限が必要で、カーネルを汚染します。これが何のためにあるのか分からない場合は、離れてください。(デフォルト:false)"");
IMX95 SoCを(安全な)PCIパススルーで使うのは本当に不可能なのでしょうか?そうでないなら、私が何か見落としているのでしょうか?
よろしくお願いします、
マイケル
こんにちは、
迅速なご回答ありがとうございます。でも、完全に理解できているかどうか自信がありません。念のため確認ですが、DPDKは使用せず、PCIデバイスをパススルーする汎用的なqemu/kvm仮想マシンを使用したいと考えています。これはuio-pci-genericフレームワークとどのように関連しているのでしょうか?
ありがとう、
マイケル
こんにちは、
NXP Semiconductors製品にご関心いただきありがとうございます。
この場合、DPDKチームの同僚の回答に従う必要があります。唯一の選択肢は、回答で述べられているものです。
「顧客が他の用途でSMMUを使いたいが、DPDKではバイパスしても許容される場合(bootargsでiommu.passthrough=1を使いたくない、DTSでSMMUノードを無効にしたくない場合)。
その後、uio-pci-genericフレームワークのバインドを試み、VSI-PSIメッセージングを無効にすることができます(エクスポートENETC4_VSI_MSG_DISABLE=1)。しかしVSI-PSIメッセージを無効にすると、ユーザーはpromisc、VLAN MACフィルタリング、リンク情報などのENETC機能の一部を使えなくなります。」
よろしくお願いします。