Re: [RFC PATCH 04/12] vfio/pci: Allow MMIO regions to be exported through dma-buf

From: Alexey Kardashevskiy

Date: Thu May 07 2026 - 03:17:58 EST


On 6/5/26 23:16, Jason Gunthorpe wrote:
On Wed, May 06, 2026 at 12:35:42PM +1000, Alexey Kardashevskiy wrote:
Hi!

Let's reignite this topic.

I've been using these patches + QEMU side hacks for 6+ months. And it's been fine until I got a device where MSIX BAR is in a middle of another BAR marked as TEE in the TDISP interface report. And no trusted MSIX yet.

Every time QEMU mmaps a BAR - I request a dmabuf fd from VFIO in QEMU. Since mapping of an entire MSIX BAR is allowed by default, VFIORegion::nr_mmaps==1 and it is an entire BAR.

Problem: KVM memslot mismatches the dmabuf fd size

Huh? kvm does not care about dmabuf at all? Are you running other
patches to hook kvm and dmabuf?

yup, 06/12 of this patchset.

Putting a slice in a dmabuf is a well understood need for MSI, so I
expect whatever kvm dmabuf interface that gets merged to accomodate
this?

good to know.

Solution2: modify logic in VFIO dmabuf to allow multiple KVM memory
slots per dmabuf. Now it is kvm_memory_slot::dmabuf_attach with no
offset into the dmabuf and one kvm_vfio_dmabuf per dma_buf.

Yes, when kvm learns to take in a dmabuf it needs to take in a slice,
not the whole buf. Or you need to create multiple dmabufs with the
necessary slices from the VFIO. The upstream vfio dmabuf creation
allows creating it with a slice.

true but either way dmabuf slicing will be directed by QEMU's msix-table emulation MR and this slicing needs to match the TDISP report so I'll have to teach QEMU these reports, right? I am worried if I miss something obvious, again. Thanks,


ps. I like nntp.lore.kernel.org very much for ability to dig out old stuff and then just reply to it :)


Jason

--
Alexey