On Sun, Apr 17, 2022 at 12:30:40PM +0200, Eric Auger wrote: > >> - More tests > > I did a quick test on my ARM64 platform, using "iommu=smmuv3" > > string. The behaviors are different between using default and > > using legacy "iommufd=off". > > > > The legacy pathway exits the VM with: > > vfio 0002:01:00.0: > > failed to setup container for group 1: > > memory listener initialization failed: > > Region smmuv3-iommu-memory-region-16-0: > > device 00.02.0 requires iommu MAP notifier which is not currently supported > > > > while the iommufd pathway started the VM but reported errors > > from host kernel about address translation failures, probably > > because of accessing unmapped addresses. > > > > I found iommufd pathway also calls error_propagate_prepend() > > to add to errp for not supporting IOMMU_NOTIFIER_MAP, but it > > doesn't get a chance to print errp out. Perhaps there should > > be a final error check somewhere to exit? > > thank you for giving it a try. > > vsmmuv3 + vfio is not supported as we miss the HW nested stage support > and SMMU does not support cache mode. If you want to test viommu on ARM > you shall test virtio-iommu+vfio. This should work but this is not yet > tested. I tried "-device virtio-iommu" and "-device virtio-iommu-pci" separately with vfio-pci, but neither seems to work. The host SMMU driver reports Translation Faults. Do you know what commands I should use to run QEMU for that combination? > I pushed a fix for the error notification issue: > qemu-for-5.17-rc6-vm-rfcv2-rc0 on my git https://github.com/eauger/qemu.git Yes. This fixes the problem. Thanks!