On Fri, Jul 27, 2018 at 10:49:59AM +0800, Leizhen (ThunderTown) wrote: > On 2018/7/26 22:16, Robin Murphy wrote: > > On 2018-07-26 4:44 AM, Leizhen (ThunderTown) wrote: > >> Passthrough is not enough to support VFIO, and virtualization need > >> the later. > > > > Huh? The whole point of passthrough mode is that the IOMMU can still be > > used for VFIO, but without imposing the overhead of dynamic mapping on > > host DMA. > > I said that from my experience. Userspace do not known the PA, so I think > the user can not fill dma_map.iova correctly. > > /* Allocate some space and setup a DMA mapping */ > dma_map.vaddr = (__u64)mmap(0, 0x1000, PROT_READ | PROT_WRITE, > MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); > dma_map.size = 0x1000; > dma_map.iova = 0x2f00000000UL; > /* user specified */ > dma_map.flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE; > > ioctl(container, VFIO_IOMMU_MAP_DMA, &dma_map);
Hmm, I'm pretty sure that's not the case. When passthrough is configured via iommu.passthrough, it only applies to the default domain and therefore won't affect the unmanaged domain that VFIO manages explicitly. So VFIO will continue to use translation and userspace can't pass whatever it likes for the iova. Will _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu