Hi Jean-Philippe, On Wed, 12 Feb 2025 11:58:45 +0000 Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> wrote: > Hi Jacob, > > On Tue, Feb 11, 2025 at 04:41:51PM -0800, Jacob Pan wrote: > > > However, there seem to be some unrelated qemu bugs. 7.0.0 does not > > > have working VIRTIO_IOMMU_F_BYPASS_CONFIG and neither qemu works > > > with an IDENTITY domain using !VIRTIO_IOMMU_F_BYPASS_CONFIG. It > > > prints: > > > > > > qemu-system-x86_64: iommu has granularity incompatible with > > > target AS qemu-system-x86_64: iommu map to non memory area > > > 80000000 qemu-system-x86_64: iommu map to non memory area c0000000 > > > qemu-system-x86_64: iommu map to non memory area e0000000 > > > qemu-system-x86_64: iommu map to non memory area f0000000 > > > qemu-system-x86_64: iommu map to non memory area f8000000 > > > qemu-system-x86_64: iommu map to non memory area fc000000 > > > qemu-system-x86_64: iommu map to non memory area fe000000 > > > qemu-system-x86_64: iommu map to non memory area fe800000 > > > qemu-system-x86_64: iommu map to non memory area 0 > > > qemu-system-x86_64: iommu map to non memory area fef00000 > > > qemu-system-x86_64: iommu map to non memory area ff000000 > > > qemu-system-x86_64: iommu has granularity incompatible with > > > target AS qemu-system-x86_64: iommu map to non memory area > > > 200000000 qemu-system-x86_64: iommu map to non memory area > > > 400000000 qemu-system-x86_64: iommu map to non memory area > > > 800000000 qemu-system-x86_64: iommu map to non memory area > > > 1000000000 qemu-system-x86_64: iommu map to non memory area > > > 2000000000 qemu-system-x86_64: iommu map to non memory area > > > 4000000000 > > > > I see the same on arm64 with v9.0, assigned an ixgbe nic via VFIO. > > > > qemu-system-aarch64: iommu map to non memory area 0 > > qemu-system-aarch64: iommu map to non memory area 8100000 > > qemu-system-aarch64: iommu map to non memory area 8200000 > > qemu-system-aarch64: iommu map to non memory area 8400000 > > qemu-system-aarch64: iommu map to non memory area 8800000 > > qemu-system-aarch64: iommu map to non memory area 0 > > qemu-system-aarch64: iommu map to non memory area 0 > > qemu-system-aarch64: iommu map to non memory area c000000 > > qemu-system-aarch64: iommu map to non memory area 10000000 > > qemu-system-aarch64: iommu map to non memory area 20000000 > > qemu-system-aarch64: iommu has granularity incompatible with target > > AS qemu-system-aarch64: iommu map to non memory area 200000000 > > qemu-system-aarch64: iommu map to non memory area 400000000 > > qemu-system-aarch64: iommu map to non memory area 800000000 > > qemu-system-aarch64: iommu map to non memory area 1000000000 > > qemu-system-aarch64: iommu map to non memory area 2000000000 > > qemu-system-aarch64: iommu map to non memory area 4000000000 > > qemu-system-aarch64: iommu map to non memory area 8000000000 > > qemu-system-aarch64: iommu map to non memory area 10000000000 > > qemu-system-aarch64: iommu map to non memory area 20000000000 > > qemu-system-aarch64: iommu map to non memory area 40000000000 > > qemu-system-aarch64: iommu map to non memory area 80000000000 > > qemu-system-aarch64: iommu map to non memory area 100000000000 > > qemu-system-aarch64: iommu map to non memory area 200000000000 > > qemu-system-aarch64: iommu map to non memory area 400000000000 > > qemu-system-aarch64: iommu map to non memory area 800000000000 > > QEMU v9.0 and v9.1 have reached end of life. Do you also get this > error with QEMU v9.2.x? have not tried. will do. > Are you running an arm64 guest on an x86 host with TCG, or arm64 > guest on arm64 host with KVM? This is arm64 guest and host. > Does reproducing this require > modifying QEMU or Linux to disable support for F_BYPASS_CONFIG, or > just passing QEMU/kernel parameters? I only modified guest code to pretend F_BYPASS_CONFIG is not supported, a couple of places like: - if (virtio_has_feature(viommu->vdev, VIRTIO_IOMMU_F_BYPASS_CONFIG)) { + if (!virtio_has_feature(viommu->vdev, VIRTIO_IOMMU_F_BYPASS_CONFIG)) { Is there a QEMU command line option to disable VIRTIO_IOMMU_F_BYPASS_CONFIG?