[PATCH v4 0/3] vfio: Add DMABUF support for PCI BAR regions

Shameer Kolothum posted 3 patches 2 weeks, 2 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260121114111.34045-1-skolothumtho@nvidia.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Alex Williamson <alex@shazbot.org>, "Cédric Le Goater" <clg@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
hw/net/virtio-net.c                           |  11 +-
hw/vfio/container.c                           |   2 +-
hw/vfio/device.c                              |   9 ++
hw/vfio/listener.c                            |   4 +-
hw/vfio/region.c                              |  65 +++++++++-
hw/vfio/trace-events                          |   1 +
include/hw/vfio/vfio-device.h                 |   3 +
include/standard-headers/drm/drm_fourcc.h     |  25 ++--
include/standard-headers/linux/ethtool.h      |   5 +
.../linux/input-event-codes.h                 |  14 ++-
include/standard-headers/linux/pci_regs.h     |  89 ++++++++++++++
include/standard-headers/linux/virtio_net.h   |   3 +-
include/standard-headers/linux/virtio_pci.h   |   2 +-
linux-headers/asm-arm64/kvm.h                 |   2 +-
linux-headers/asm-arm64/unistd_64.h           |   1 +
linux-headers/asm-generic/unistd.h            |   4 +-
linux-headers/asm-loongarch/kvm.h             |   1 +
linux-headers/asm-loongarch/unistd.h          |   6 +
linux-headers/asm-loongarch/unistd_64.h       |   1 +
linux-headers/asm-mips/unistd_n32.h           |   1 +
linux-headers/asm-mips/unistd_n64.h           |   1 +
linux-headers/asm-mips/unistd_o32.h           |   1 +
linux-headers/asm-powerpc/unistd_32.h         |   1 +
linux-headers/asm-powerpc/unistd_64.h         |   1 +
linux-headers/asm-riscv/kvm.h                 |   3 +
linux-headers/asm-riscv/unistd_32.h           |   1 +
linux-headers/asm-riscv/unistd_64.h           |   1 +
linux-headers/asm-s390/bitsperlong.h          |   4 -
linux-headers/asm-s390/unistd.h               |   4 -
linux-headers/asm-s390/unistd_64.h            |   9 +-
linux-headers/asm-x86/kvm.h                   |   1 +
linux-headers/asm-x86/unistd_32.h             |   1 +
linux-headers/asm-x86/unistd_64.h             |   1 +
linux-headers/asm-x86/unistd_x32.h            |   1 +
linux-headers/linux/iommufd.h                 |  10 ++
linux-headers/linux/kvm.h                     |  11 ++
linux-headers/linux/mshv.h                    | 116 +++++++++++++++++-
linux-headers/linux/psp-sev.h                 |  66 ++++++----
linux-headers/linux/vfio.h                    |  28 +++++
39 files changed, 450 insertions(+), 60 deletions(-)
[PATCH v4 0/3] vfio: Add DMABUF support for PCI BAR regions
Posted by Shameer Kolothum 2 weeks, 2 days ago
Hi,

Linux now provides a VFIO dmabuf exporter to expose PCI BAR memory for P2P
use cases. This adds support for vfio devices to create a dmabuf for
each mapped BAR region.

Changes from v3:
 https://lore.kernel.org/qemu-devel/20260116092950.15796-1-skolothumtho@nvidia.com/
 
 - Folded in patch #2 to linux-headers update to avoid bisect failure
   due to build error.

The dmabuf support was sanity tested on an NVIDIA grace paltform.

Please take a look and let me know.

Thanks,
Shameer

Nicolin Chen (1):
  hw/vfio/region: Create dmabuf for PCI BAR per region

Shameer Kolothum (2):
  linux-headers: Update to Linux v6.19-rc1
  hw/vfio: Add helper to retrieve device feature

 hw/net/virtio-net.c                           |  11 +-
 hw/vfio/container.c                           |   2 +-
 hw/vfio/device.c                              |   9 ++
 hw/vfio/listener.c                            |   4 +-
 hw/vfio/region.c                              |  65 +++++++++-
 hw/vfio/trace-events                          |   1 +
 include/hw/vfio/vfio-device.h                 |   3 +
 include/standard-headers/drm/drm_fourcc.h     |  25 ++--
 include/standard-headers/linux/ethtool.h      |   5 +
 .../linux/input-event-codes.h                 |  14 ++-
 include/standard-headers/linux/pci_regs.h     |  89 ++++++++++++++
 include/standard-headers/linux/virtio_net.h   |   3 +-
 include/standard-headers/linux/virtio_pci.h   |   2 +-
 linux-headers/asm-arm64/kvm.h                 |   2 +-
 linux-headers/asm-arm64/unistd_64.h           |   1 +
 linux-headers/asm-generic/unistd.h            |   4 +-
 linux-headers/asm-loongarch/kvm.h             |   1 +
 linux-headers/asm-loongarch/unistd.h          |   6 +
 linux-headers/asm-loongarch/unistd_64.h       |   1 +
 linux-headers/asm-mips/unistd_n32.h           |   1 +
 linux-headers/asm-mips/unistd_n64.h           |   1 +
 linux-headers/asm-mips/unistd_o32.h           |   1 +
 linux-headers/asm-powerpc/unistd_32.h         |   1 +
 linux-headers/asm-powerpc/unistd_64.h         |   1 +
 linux-headers/asm-riscv/kvm.h                 |   3 +
 linux-headers/asm-riscv/unistd_32.h           |   1 +
 linux-headers/asm-riscv/unistd_64.h           |   1 +
 linux-headers/asm-s390/bitsperlong.h          |   4 -
 linux-headers/asm-s390/unistd.h               |   4 -
 linux-headers/asm-s390/unistd_64.h            |   9 +-
 linux-headers/asm-x86/kvm.h                   |   1 +
 linux-headers/asm-x86/unistd_32.h             |   1 +
 linux-headers/asm-x86/unistd_64.h             |   1 +
 linux-headers/asm-x86/unistd_x32.h            |   1 +
 linux-headers/linux/iommufd.h                 |  10 ++
 linux-headers/linux/kvm.h                     |  11 ++
 linux-headers/linux/mshv.h                    | 116 +++++++++++++++++-
 linux-headers/linux/psp-sev.h                 |  66 ++++++----
 linux-headers/linux/vfio.h                    |  28 +++++
 39 files changed, 450 insertions(+), 60 deletions(-)

-- 
2.43.0
Re: [PATCH v4 0/3] vfio: Add DMABUF support for PCI BAR regions
Posted by Eric Auger 2 weeks, 2 days ago

On 1/21/26 12:41 PM, Shameer Kolothum wrote:
> Hi,
>
> Linux now provides a VFIO dmabuf exporter to expose PCI BAR memory for P2P
> use cases. This adds support for vfio devices to create a dmabuf for
> each mapped BAR region.
>
> Changes from v3:
>  https://lore.kernel.org/qemu-devel/20260116092950.15796-1-skolothumtho@nvidia.com/
>  
>  - Folded in patch #2 to linux-headers update to avoid bisect failure
>    due to build error.
>
> The dmabuf support was sanity tested on an NVIDIA grace paltform.
>
> Please take a look and let me know.
>
> Thanks,
> Shameer
>
> Nicolin Chen (1):
>   hw/vfio/region: Create dmabuf for PCI BAR per region
>
> Shameer Kolothum (2):
>   linux-headers: Update to Linux v6.19-rc1
>   hw/vfio: Add helper to retrieve device feature
>
>  hw/net/virtio-net.c                           |  11 +-
>  hw/vfio/container.c                           |   2 +-
>  hw/vfio/device.c                              |   9 ++
>  hw/vfio/listener.c                            |   4 +-
>  hw/vfio/region.c                              |  65 +++++++++-
>  hw/vfio/trace-events                          |   1 +
>  include/hw/vfio/vfio-device.h                 |   3 +
>  include/standard-headers/drm/drm_fourcc.h     |  25 ++--
>  include/standard-headers/linux/ethtool.h      |   5 +
>  .../linux/input-event-codes.h                 |  14 ++-
>  include/standard-headers/linux/pci_regs.h     |  89 ++++++++++++++
>  include/standard-headers/linux/virtio_net.h   |   3 +-
>  include/standard-headers/linux/virtio_pci.h   |   2 +-
>  linux-headers/asm-arm64/kvm.h                 |   2 +-
>  linux-headers/asm-arm64/unistd_64.h           |   1 +
>  linux-headers/asm-generic/unistd.h            |   4 +-
>  linux-headers/asm-loongarch/kvm.h             |   1 +
>  linux-headers/asm-loongarch/unistd.h          |   6 +
>  linux-headers/asm-loongarch/unistd_64.h       |   1 +
>  linux-headers/asm-mips/unistd_n32.h           |   1 +
>  linux-headers/asm-mips/unistd_n64.h           |   1 +
>  linux-headers/asm-mips/unistd_o32.h           |   1 +
>  linux-headers/asm-powerpc/unistd_32.h         |   1 +
>  linux-headers/asm-powerpc/unistd_64.h         |   1 +
>  linux-headers/asm-riscv/kvm.h                 |   3 +
>  linux-headers/asm-riscv/unistd_32.h           |   1 +
>  linux-headers/asm-riscv/unistd_64.h           |   1 +
>  linux-headers/asm-s390/bitsperlong.h          |   4 -
>  linux-headers/asm-s390/unistd.h               |   4 -
>  linux-headers/asm-s390/unistd_64.h            |   9 +-
>  linux-headers/asm-x86/kvm.h                   |   1 +
>  linux-headers/asm-x86/unistd_32.h             |   1 +
>  linux-headers/asm-x86/unistd_64.h             |   1 +
>  linux-headers/asm-x86/unistd_x32.h            |   1 +
>  linux-headers/linux/iommufd.h                 |  10 ++
>  linux-headers/linux/kvm.h                     |  11 ++
>  linux-headers/linux/mshv.h                    | 116 +++++++++++++++++-
>  linux-headers/linux/psp-sev.h                 |  66 ++++++----
>  linux-headers/linux/vfio.h                    |  28 +++++
>  39 files changed, 450 insertions(+), 60 deletions(-)
>
For the whole series:

Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>

Thanks

Eric
Re: [PATCH v4 0/3] vfio: Add DMABUF support for PCI BAR regions
Posted by Michael S. Tsirkin 2 weeks, 2 days ago
On Wed, Jan 21, 2026 at 11:41:08AM +0000, Shameer Kolothum wrote:
> Hi,
> 
> Linux now provides a VFIO dmabuf exporter to expose PCI BAR memory for P2P
> use cases. This adds support for vfio devices to create a dmabuf for
> each mapped BAR region.
> 
> Changes from v3:
>  https://lore.kernel.org/qemu-devel/20260116092950.15796-1-skolothumtho@nvidia.com/
>  
>  - Folded in patch #2 to linux-headers update to avoid bisect failure
>    due to build error.


Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

> The dmabuf support was sanity tested on an NVIDIA grace paltform.
> 
> Please take a look and let me know.
> 
> Thanks,
> Shameer
> 
> Nicolin Chen (1):
>   hw/vfio/region: Create dmabuf for PCI BAR per region
> 
> Shameer Kolothum (2):
>   linux-headers: Update to Linux v6.19-rc1
>   hw/vfio: Add helper to retrieve device feature
> 
>  hw/net/virtio-net.c                           |  11 +-
>  hw/vfio/container.c                           |   2 +-
>  hw/vfio/device.c                              |   9 ++
>  hw/vfio/listener.c                            |   4 +-
>  hw/vfio/region.c                              |  65 +++++++++-
>  hw/vfio/trace-events                          |   1 +
>  include/hw/vfio/vfio-device.h                 |   3 +
>  include/standard-headers/drm/drm_fourcc.h     |  25 ++--
>  include/standard-headers/linux/ethtool.h      |   5 +
>  .../linux/input-event-codes.h                 |  14 ++-
>  include/standard-headers/linux/pci_regs.h     |  89 ++++++++++++++
>  include/standard-headers/linux/virtio_net.h   |   3 +-
>  include/standard-headers/linux/virtio_pci.h   |   2 +-
>  linux-headers/asm-arm64/kvm.h                 |   2 +-
>  linux-headers/asm-arm64/unistd_64.h           |   1 +
>  linux-headers/asm-generic/unistd.h            |   4 +-
>  linux-headers/asm-loongarch/kvm.h             |   1 +
>  linux-headers/asm-loongarch/unistd.h          |   6 +
>  linux-headers/asm-loongarch/unistd_64.h       |   1 +
>  linux-headers/asm-mips/unistd_n32.h           |   1 +
>  linux-headers/asm-mips/unistd_n64.h           |   1 +
>  linux-headers/asm-mips/unistd_o32.h           |   1 +
>  linux-headers/asm-powerpc/unistd_32.h         |   1 +
>  linux-headers/asm-powerpc/unistd_64.h         |   1 +
>  linux-headers/asm-riscv/kvm.h                 |   3 +
>  linux-headers/asm-riscv/unistd_32.h           |   1 +
>  linux-headers/asm-riscv/unistd_64.h           |   1 +
>  linux-headers/asm-s390/bitsperlong.h          |   4 -
>  linux-headers/asm-s390/unistd.h               |   4 -
>  linux-headers/asm-s390/unistd_64.h            |   9 +-
>  linux-headers/asm-x86/kvm.h                   |   1 +
>  linux-headers/asm-x86/unistd_32.h             |   1 +
>  linux-headers/asm-x86/unistd_64.h             |   1 +
>  linux-headers/asm-x86/unistd_x32.h            |   1 +
>  linux-headers/linux/iommufd.h                 |  10 ++
>  linux-headers/linux/kvm.h                     |  11 ++
>  linux-headers/linux/mshv.h                    | 116 +++++++++++++++++-
>  linux-headers/linux/psp-sev.h                 |  66 ++++++----
>  linux-headers/linux/vfio.h                    |  28 +++++
>  39 files changed, 450 insertions(+), 60 deletions(-)
> 
> -- 
> 2.43.0