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/cover.1754311439.git.leon@kernel.org/ > > Associated virtio-gpu kernel driver series (merged): > > https://lore.kernel.org/dri-devel/20241126031643.3490496-1- > vivek.kasireddy@intel.com/ > > > > --- > > Cc: Marc-André Lureau <marcandre.lureau@redhat.com> > > Cc: Alex Bennée <alex.bennee@linaro.org> > > Cc: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> > > Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com> > > Cc: Alex Williamson <alex.williamson@redhat.com> > > Cc: Cédric Le Goater <clg@redhat.com> > > Cc: Leon Romanovsky <leon@kernel.org> > > Cc: Leon Romanovsky <leonro@nvidia.com> > > Cc: Jason Gunthorpe <jgg@nvidia.com> > > Cc: Dongwon Kim <dongwon.kim@intel.com> > > > > 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.
© 2016 - 2025 Red Hat, Inc.