All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] cover-letter: Allow MMIO regions to be exported through dmabuf
@ 2024-12-16  9:59 Wei Lin Guay
  2024-12-16  9:59 ` [PATCH 1/4] vfio: Add vfio_device_get() Wei Lin Guay
                   ` (4 more replies)
  0 siblings, 5 replies; 33+ messages in thread
From: Wei Lin Guay @ 2024-12-16  9:59 UTC (permalink / raw)
  To: alex.williamson, dri-devel, kvm, linux-rdma
  Cc: jgg, vivek.kasireddy, dagmoxnes, kbusch, nviljoen, Wei Lin Guay,
	Oded Gabbay, Christian König, Daniel Vetter, Leon Romanovsky,
	Maor Gottlieb

From: Wei Lin Guay <wguay@meta.com>

This is another attempt to revive the patches posted by Jason
Gunthorpe and Vivek Kasireddy, at
https://patchwork.kernel.org/project/linux-media/cover/0-v2-472615b3877e+28f7-vfio_dma_buf_jgg@nvidia.com/
https://lwn.net/Articles/970751/

In addition to the initial proposal by Jason, another promising
application is exposing memory from an AI accelerator (bound to VFIO)
to an RDMA device. This would allow the RDMA device to directly access
the accelerator's memory, thereby facilitating direct data
transactions between the RDMA device and the accelerator.

Below is from the text/motivation from the orginal cover letter.

dma-buf has become a way to safely acquire a handle to non-struct page
memory that can still have lifetime controlled by the exporter. Notably
RDMA can now import dma-buf FDs and build them into MRs which allows for
PCI P2P operations. Extend this to allow vfio-pci to export MMIO memory
from PCI device BARs.

This series supports a use case for SPDK where a NVMe device will be owned
by SPDK through VFIO but interacting with a RDMA device. The RDMA device
may directly access the NVMe CMB or directly manipulate the NVMe device's
doorbell using PCI P2P.

However, as a general mechanism, it can support many other scenarios with
VFIO. I imagine this dmabuf approach to be usable by iommufd as well for
generic and safe P2P mappings.

This series goes after the "Break up ioctl dispatch functions to one
function per ioctl" series.

v2:
 - Name the new file dma_buf.c
 - Restore orig_nents before freeing
 - Fix reversed logic around priv->revoked
 - Set priv->index
 - Rebased on v2 "Break up ioctl dispatch functions"
v1: https://lore.kernel.org/r/0-v1-9e6e1739ed95+5fa-vfio_dma_buf_jgg@nvidia.com
Cc: linux-rdma@vger.kernel.org
Cc: Oded Gabbay <ogabbay@kernel.org>
Cc: Christian König <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Maor Gottlieb <maorg@nvidia.com>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>

Jason Gunthorpe (3):
  vfio: Add vfio_device_get()
  dma-buf: Add dma_buf_try_get()
  vfio/pci: Allow MMIO regions to be exported through dma-buf

Wei Lin Guay (1):
  vfio/pci: Allow export dmabuf without move_notify from importer

 drivers/vfio/pci/Makefile          |   1 +
 drivers/vfio/pci/dma_buf.c         | 291 +++++++++++++++++++++++++++++
 drivers/vfio/pci/vfio_pci_config.c |   8 +-
 drivers/vfio/pci/vfio_pci_core.c   |  44 ++++-
 drivers/vfio/pci/vfio_pci_priv.h   |  30 +++
 drivers/vfio/vfio_main.c           |   1 +
 include/linux/dma-buf.h            |  13 ++
 include/linux/vfio.h               |   6 +
 include/linux/vfio_pci_core.h      |   1 +
 include/uapi/linux/vfio.h          |  18 ++
 10 files changed, 405 insertions(+), 8 deletions(-)
 create mode 100644 drivers/vfio/pci/dma_buf.c

--
2.43.5

^ permalink raw reply	[flat|nested] 33+ messages in thread
* [PATCH 0/4] cover-letter: Allow MMIO regions to be exported through dmabuf
@ 2024-12-16  9:54 Wei Lin Guay
  2024-12-16 10:21 ` Christian König
  0 siblings, 1 reply; 33+ messages in thread
From: Wei Lin Guay @ 2024-12-16  9:54 UTC (permalink / raw)
  To: alex.williamson, dri-devel, kvm, linux-rdma
  Cc: jgg, vivek.kasireddy, dagmoxnes, kbusch, nviljoen, Wei Lin Guay,
	Oded Gabbay, Christian König, Daniel Vetter, Leon Romanovsky,
	Maor Gottlieb

From: Wei Lin Guay <wguay@meta.com>

This is another attempt to revive the patches posted by Jason
Gunthorpe and Vivek Kasireddy, at
https://patchwork.kernel.org/project/linux-media/cover/0-v2-472615b3877e+28f7-vfio_dma_buf_jgg@nvidia.com/
https://lwn.net/Articles/970751/

In addition to the initial proposal by Jason, another promising
application is exposing memory from an AI accelerator (bound to VFIO)
to an RDMA device. This would allow the RDMA device to directly access
the accelerator's memory, thereby facilitating direct data
transactions between the RDMA device and the accelerator.

Below is from the text/motivation from the orginal cover letter.

dma-buf has become a way to safely acquire a handle to non-struct page
memory that can still have lifetime controlled by the exporter. Notably
RDMA can now import dma-buf FDs and build them into MRs which allows for
PCI P2P operations. Extend this to allow vfio-pci to export MMIO memory
from PCI device BARs.

This series supports a use case for SPDK where a NVMe device will be owned
by SPDK through VFIO but interacting with a RDMA device. The RDMA device
may directly access the NVMe CMB or directly manipulate the NVMe device's
doorbell using PCI P2P.

However, as a general mechanism, it can support many other scenarios with
VFIO. I imagine this dmabuf approach to be usable by iommufd as well for
generic and safe P2P mappings.

This series goes after the "Break up ioctl dispatch functions to one
function per ioctl" series.

v2:
 - Name the new file dma_buf.c
 - Restore orig_nents before freeing
 - Fix reversed logic around priv->revoked
 - Set priv->index
 - Rebased on v2 "Break up ioctl dispatch functions"
v1: https://lore.kernel.org/r/0-v1-9e6e1739ed95+5fa-vfio_dma_buf_jgg@nvidia.com
Cc: linux-rdma@vger.kernel.org
Cc: Oded Gabbay <ogabbay@kernel.org>
Cc: Christian König <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Maor Gottlieb <maorg@nvidia.com>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>

Jason Gunthorpe (3):
  vfio: Add vfio_device_get()
  dma-buf: Add dma_buf_try_get()
  vfio/pci: Allow MMIO regions to be exported through dma-buf

Wei Lin Guay (1):
  vfio/pci: Allow export dmabuf without move_notify from importer

 drivers/vfio/pci/Makefile          |   1 +
 drivers/vfio/pci/dma_buf.c         | 291 +++++++++++++++++++++++++++++
 drivers/vfio/pci/vfio_pci_config.c |   8 +-
 drivers/vfio/pci/vfio_pci_core.c   |  44 ++++-
 drivers/vfio/pci/vfio_pci_priv.h   |  30 +++
 drivers/vfio/vfio_main.c           |   1 +
 include/linux/dma-buf.h            |  13 ++
 include/linux/vfio.h               |   6 +
 include/linux/vfio_pci_core.h      |   1 +
 include/uapi/linux/vfio.h          |  18 ++
 10 files changed, 405 insertions(+), 8 deletions(-)
 create mode 100644 drivers/vfio/pci/dma_buf.c

--
2.43.5

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2025-03-04 14:54 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-16  9:59 [PATCH 0/4] cover-letter: Allow MMIO regions to be exported through dmabuf Wei Lin Guay
2024-12-16  9:59 ` [PATCH 1/4] vfio: Add vfio_device_get() Wei Lin Guay
2024-12-16  9:59 ` [PATCH 2/4] dma-buf: Add dma_buf_try_get() Wei Lin Guay
2024-12-16  9:59 ` [PATCH 3/4] vfio/pci: Allow MMIO regions to be exported through dma-buf Wei Lin Guay
2024-12-16  9:59 ` [PATCH 4/4] vfio/pci: Allow export dmabuf without move_notify from importer Wei Lin Guay
2024-12-16 17:34 ` [PATCH 0/4] cover-letter: Allow MMIO regions to be exported through dmabuf Kasireddy, Vivek
2024-12-17 12:19   ` Wei Lin Guay
2024-12-18  7:02     ` Kasireddy, Vivek
2025-02-23 18:26       ` Wei Lin Guay
2025-02-26  7:55         ` Kasireddy, Vivek
2025-02-26 13:38           ` Jason Gunthorpe
2025-02-26 17:59             ` Leon Romanovsky
2025-02-26 18:27               ` Wei Lin Guay
2025-03-04  7:15             ` Kasireddy, Vivek
2025-03-04 14:29             ` Christian König
2025-03-04 14:33               ` Jason Gunthorpe
2025-03-04 14:54               ` Leon Romanovsky
2025-02-26 18:24           ` Wei Lin Guay
  -- strict thread matches above, loose matches on Subject: below --
2024-12-16  9:54 Wei Lin Guay
2024-12-16 10:21 ` Christian König
2024-12-16 16:54   ` Keith Busch
2024-12-17  9:53     ` Christian König
2024-12-17 11:06       ` Wei Lin Guay
2024-12-17 12:47         ` Christian König
2024-12-18  6:16           ` Kasireddy, Vivek
2024-12-18 10:01             ` Christian König
2024-12-19  7:02               ` Kasireddy, Vivek
2024-12-19 10:04                 ` Christian König
2025-01-02 13:39                   ` Jason Gunthorpe
2025-01-06 12:05                     ` Simona Vetter
2025-01-06 16:27                       ` Jason Gunthorpe
2025-01-08 16:48                         ` Simona Vetter
2024-12-18 10:44       ` Simona Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.