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?
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?
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.
Jason