我正在使用aarch64 Linux测试KVM VM中的VFIO-IOMMU特性。
主机为cortex-A78,运行Linux-5.10.104(启用VFIO_IOMMU)。客户操作系统是Ubuntu-22.04 (Linux-5.15,也启用了VFIO_IOMMU)。
虚拟机是用带有虚拟设备的虚拟机管理器创建的,如网卡,SCSI等。
但是我没有找到在internet上添加VFIO-IOMMU设备到虚拟机的方法。
我尝试在vm.xml中添加以下行,
<iommu model='smmuv3'/>
但是在客户操作系统启动后,我发现了以下关于iommu的日志,但没有关于SMMUv3的日志。
t@t:~$ dmesg | grep -i mmu
[ 0.320696] iommu: Default domain type: Translated
[ 0.321218] iommu: DMA domain TLB invalidation policy: strict mode
那么在这种情况下如何支持/添加VFIO-IOMMU呢?
qemu-system-aarch64是4.2.1,我不确定它是否能支持ARMv8的smmuv4
我确认QEMU-6.2.0支持SMMUv3。客户机操作系统日志显示如下内容,
[ 0.578157] arm-smmu-v3 arm-smmu-v3.0.auto: option mask 0x0
[ 0.578841] arm-smmu-v3 arm-smmu-v3.0.auto: ias 44-bit, oas 44-bit (features 0x00008305)
[ 0.580289] arm-smmu-v3 arm-smmu-v3.0.auto: allocated 65536 entries for cmdq
[ 0.581060] arm-smmu-v3 arm-smmu-v3.0.auto: allocated 128 entries for evtq