On 10/5/26 Christian König wrote:
Well filling page tables by the importer is an absolutely clear NO-GO
for the DMA-buf design, we have gotten down that path already and it
took us years to remove this functionality again.
Understood, thanks for the quick and clear answers on this patch and on
patch 3.
The problem you are facing here is that dma_buf_mmap() doesn't work
because you don't have a VMA.
Right: the memory has no struct page and is deliberately not mapped in
the host, so there is no VMA to hand to KVM.
I'll post a new version of this series. It drops get_phys(), the ranged
invalidation and the guest_memfd dma-buf import (patches 2-5), and it
does not touch drivers/dma-buf, as you suggested in the PAL discussion:
https://lore.kernel.org/all/c413710b-4c28-4ed8-88ec-aeb8c4482011@amd.com/ (local)
KVM gets its frames through the KVM-private guest_memfd provider
interface from David's series. iommufd gets them through a private
interface with the exporter, as it already does for vfio-pci. The new
version adds a small registry in iommufd for that, which replaces the
symbol_get() of the sample in David's series. The dma-buf is then only
the handle and the existing revoke.
Thanks,
Fred