All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin LaHaise <bcrl@kvack.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: "Alex Williamson" <alex.williamson@redhat.com>,
	"Jason Gunthorpe" <jgg@nvidia.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Christoph Hellwig" <hch@lst.de>,
	dri-devel@lists.freedesktop.org, iommu@lists.linux.dev,
	"Jens Axboe" <axboe@kernel.dk>, "Joerg Roedel" <joro@8bytes.org>,
	kvm@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org, linux-mm@kvack.org,
	linux-pci@vger.kernel.org,
	"Logan Gunthorpe" <logang@deltatee.com>,
	"Marek Szyprowski" <m.szyprowski@samsung.com>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Sumit Semwal" <sumit.semwal@linaro.org>,
	"Vivek Kasireddy" <vivek.kasireddy@intel.com>,
	"Will Deacon" <will@kernel.org>
Subject: Re: [PATCH v1 00/10] vfio/pci: Allow MMIO regions to be exported through dma-buf
Date: Mon, 4 Aug 2025 10:10:32 -0400	[thread overview]
Message-ID: <20250804141032.GA30056@kvack.org> (raw)
In-Reply-To: <cover.1754311439.git.leon@kernel.org>

FYI: this entire patch series was rejected as spam by large numbers of
linux-mm subscribers using @gmail.com email addresses.

		-ben (owner-linux-mm)

On Mon, Aug 04, 2025 at 04:00:35PM +0300, Leon Romanovsky wrote:
> Changelog:
> v1:
>  * Changed commit messages.
>  * Reused DMA_ATTR_MMIO attribute.
>  * Returned support for multiple DMA ranges per-dMABUF.
> v0: https://lore.kernel.org/all/cover.1753274085.git.leonro@nvidia.com
> 
> ---------------------------------------------------------------------------
> Based on "[PATCH v1 00/16] dma-mapping: migrate to physical address-based API"
> https://lore.kernel.org/all/cover.1754292567.git.leon@kernel.org series.
> ---------------------------------------------------------------------------
> 
> This series extends the VFIO PCI subsystem to support exporting MMIO regions
> from PCI device BARs as dma-buf objects, enabling safe sharing of non-struct
> page memory with controlled lifetime management. This allows RDMA and other
> subsystems to import dma-buf FDs and build them into memory regions for PCI
> P2P operations.
> 
> The 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. This dmabuf approach can be usable by iommufd as well for generic
> and safe P2P mappings.
> 
> In addition to the SPDK use-case mentioned above, the capability added
> in this patch series can also be useful when a buffer (located in device
> memory such as VRAM) needs to be shared between any two dGPU devices or
> instances (assuming one of them is bound to VFIO PCI) as long as they
> are P2P DMA compatible.
> 
> The implementation provides a revocable attachment mechanism using dma-buf
> move operations. MMIO regions are normally pinned as BARs don't change
> physical addresses, but access is revoked when the VFIO device is closed
> or a PCI reset is issued. This ensures kernel self-defense against
> potentially hostile userspace.
> 
> The series includes significant refactoring of the PCI P2PDMA subsystem
> to separate core P2P functionality from memory allocation features,
> making it more modular and suitable for VFIO use cases that don't need
> struct page support.
> 
> -----------------------------------------------------------------------
> The series is based originally on
> https://lore.kernel.org/all/20250307052248.405803-1-vivek.kasireddy@intel.com/
> but heavily rewritten to be based on DMA physical API.
> -----------------------------------------------------------------------
> The WIP branch can be found here:
> https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git/log/?h=dmabuf-vfio-v1
> 
> Thanks
> 
> Leon Romanovsky (8):
>   PCI/P2PDMA: Remove redundant bus_offset from map state
>   PCI/P2PDMA: Separate the mmap() support from the core logic
>   PCI/P2PDMA: Simplify bus address mapping API
>   PCI/P2PDMA: Refactor to separate core P2P functionality from memory
>     allocation
>   PCI/P2PDMA: Export pci_p2pdma_map_type() function
>   types: move phys_vec definition to common header
>   vfio/pci: Enable peer-to-peer DMA transactions by default
>   vfio/pci: Add dma-buf export support for MMIO regions
> 
> Vivek Kasireddy (2):
>   vfio: Export vfio device get and put registration helpers
>   vfio/pci: Share the core device pointer while invoking feature
>     functions
> 
>  block/blk-mq-dma.c                 |   7 +-
>  drivers/iommu/dma-iommu.c          |   4 +-
>  drivers/pci/p2pdma.c               | 154 ++++++++----
>  drivers/vfio/pci/Kconfig           |  20 ++
>  drivers/vfio/pci/Makefile          |   2 +
>  drivers/vfio/pci/vfio_pci_config.c |  22 +-
>  drivers/vfio/pci/vfio_pci_core.c   |  59 +++--
>  drivers/vfio/pci/vfio_pci_dmabuf.c | 390 +++++++++++++++++++++++++++++
>  drivers/vfio/pci/vfio_pci_priv.h   |  23 ++
>  drivers/vfio/vfio_main.c           |   2 +
>  include/linux/dma-buf.h            |   1 +
>  include/linux/pci-p2pdma.h         | 114 +++++----
>  include/linux/types.h              |   5 +
>  include/linux/vfio.h               |   2 +
>  include/linux/vfio_pci_core.h      |   4 +
>  include/uapi/linux/vfio.h          |  25 ++
>  kernel/dma/direct.c                |   4 +-
>  mm/hmm.c                           |   2 +-
>  18 files changed, 715 insertions(+), 125 deletions(-)
>  create mode 100644 drivers/vfio/pci/vfio_pci_dmabuf.c
> 
> -- 
> 2.50.1
> 

-- 
"Thought is the essence of where you are now."

  parent reply	other threads:[~2025-08-04 14:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-04 13:00 [PATCH v1 00/10] vfio/pci: Allow MMIO regions to be exported through dma-buf Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 01/10] PCI/P2PDMA: Remove redundant bus_offset from map state Leon Romanovsky
2025-08-06 20:58   ` Alex Williamson
2025-09-02 11:06     ` Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 02/10] PCI/P2PDMA: Separate the mmap() support from the core logic Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 03/10] PCI/P2PDMA: Simplify bus address mapping API Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 04/10] PCI/P2PDMA: Refactor to separate core P2P functionality from memory allocation Leon Romanovsky
2025-08-06 21:42   ` Alex Williamson
2025-08-07  0:02     ` Jason Gunthorpe
2025-08-04 13:00 ` [PATCH v1 05/10] PCI/P2PDMA: Export pci_p2pdma_map_type() function Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 06/10] types: move phys_vec definition to common header Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 07/10] vfio: Export vfio device get and put registration helpers Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 08/10] vfio/pci: Enable peer-to-peer DMA transactions by default Leon Romanovsky
2025-08-06 22:02   ` Alex Williamson
2025-09-02 12:58     ` Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 09/10] vfio/pci: Share the core device pointer while invoking feature functions Leon Romanovsky
2025-08-04 13:00 ` [PATCH v1 10/10] vfio/pci: Add dma-buf export support for MMIO regions Leon Romanovsky
2025-08-04 15:26   ` Leon Romanovsky
2025-08-06 22:24   ` Alex Williamson
2025-09-12 18:55   ` Alex Mastro
2025-09-13 10:19     ` Leon Romanovsky
2025-08-04 14:10 ` Benjamin LaHaise [this message]
2025-08-04 14:18   ` [PATCH v1 00/10] vfio/pci: Allow MMIO regions to be exported through dma-buf Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250804141032.GA30056@kvack.org \
    --to=bcrl@kvack.org \
    --cc=akpm@linux-foundation.org \
    --cc=alex.williamson@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=bhelgaas@google.com \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=leon@kernel.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=logang@deltatee.com \
    --cc=m.szyprowski@samsung.com \
    --cc=robin.murphy@arm.com \
    --cc=sumit.semwal@linaro.org \
    --cc=vivek.kasireddy@intel.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.