Hi Cedric,

> Subject: Re: [PATCH v1 0/7] vfio: Implement
> VFIO_DEVICE_FEATURE_DMA_BUF and use it in virtio-gpu
> 
> Vivek,
> 
> On 10/4/25 01:35, Vivek Kasireddy wrote:
> > The virtio-gpu driver running in the Guest VM can create Guest blob
> > resources (by importing dmabufs) that are backed by System RAM. This
> > is made possible by making use of memfd memory backend and udmabuf
> > driver on the Host side. However, in order to create Guest blobs
> > that are backed by vfio-pci device regions (which happens when
> > virtio-gpu imports dmabufs from devices that have local memory such
> > as dGPU VFs), we have to implement VFIO_DEVICE_FEATURE_DMA_BUF and
> > leverage it in virtio-gpu.
> >
> > So, while creating the blobs we use memory_region_is_ram_device() to
> > figure out if the blob is backed by memfd or a vfio-pci device. If
> > it is determined that the blob is backed by vfio-pci device region,
> > instead of calling into udmabuf driver to create dmabuf we would
> > now call into vfio-pci driver to have a dmabuf created on the Host.
> >
> > RFC -> v1:
> > - Create the CPU mapping using vfio device fd if the dmabuf exporter
> >    (vfio-pci) does not provide mmap() support (Akihiko)
> > - Log a warning with LOG_GUEST_ERROR instead of warn_report() when
> >    dmabuf cannot be created using Guest provided addresses (Akihiko)
> > - Use address_space_translate() instead of gpa2hva() to obtain the
> >    Host addresses (Akihiko)
> > - Rearrange the patches and improve the commit messages (Akihiko)
> > - Fix compilation error when VFIO is not enabled (Alex)
> > - Add a new helper to obtain VFIO region index from memory region
> > - Move vfio_device_create_dmabuf() to hw/vfio/device.c
> >
> > Tested with an SRIOV enabled Intel dGPU by running Gnome Wayland
> 
> Could you please be more precise on the HW ?
Ok, I'll mention the specific model.

> 
> > (in the VM) and Qemu with the following (relevant) parameters:
> > -device vfio-pci,host=0000:03:00.1
> > -device virtio-vga,max_outputs=1,xres=1920,yres=1080,blob=true
> > -display gtk,gl=on
> >
> > Associated vfio-pci kernel driver series:
> > https://lore.kernel.org/dri-devel/[email protected]/
> > Associated virtio-gpu kernel driver series (merged):
> > https://lore.kernel.org/dri-devel/20241126031643.3490496-1-
> [email protected]/
> >
> > ---
> > Cc: Marc-André Lureau <[email protected]>
> > Cc: Alex Bennée <[email protected]>
> > Cc: Akihiko Odaki <[email protected]>
> > Cc: Dmitry Osipenko <[email protected]>
> > Cc: Alex Williamson <[email protected]>
> > Cc: Cédric Le Goater <[email protected]>
> > Cc: Leon Romanovsky <[email protected]>
> > Cc: Leon Romanovsky <[email protected]>
> > Cc: Jason Gunthorpe <[email protected]>
> > Cc: Dongwon Kim <[email protected]>
> >
> > Vivek Kasireddy (7):
> >    virtio-gpu: Recreate the resource's dmabuf if new backing is attached
> >    virtio-gpu: Don't rely on res->blob to identify blob resources
> >    virtio-gpu: Find hva for Guest's DMA addr associated with a ram device
> >    vfio/region: Add a helper to get region index from memory region
> >    linux-headers: Update vfio.h to include VFIO_DEVICE_FEATURE_DMA_BUF
> >    vfio/device: Add support for VFIO_DEVICE_FEATURE_DMA_BUF
> >    virtio-gpu-udmabuf: Create dmabuf for blobs associated with VFIO
> >      devices
> >
> >   hw/display/Kconfig              |   5 ++
> >   hw/display/virtio-gpu-udmabuf.c | 143
> ++++++++++++++++++++++++++++++--
> >   hw/display/virtio-gpu.c         |  53 +++++++++---
> >   hw/vfio/device.c                |  43 ++++++++++
> >   hw/vfio/region.c                |  14 ++++
> >   include/hw/vfio/vfio-device.h   |   5 ++
> >   linux-headers/linux/vfio.h      |  25 ++++++
> >   7 files changed, 270 insertions(+), 18 deletions(-)
> >
> 
> Please cc: Alex and I on all patches.
Sure, will do.

Thanks,
Vivek

> 
> Thanks,
> 
> C.


Reply via email to