From: Jason Gunthorpe <jgg@ziepe.ca>
To: "Christian König" <christian.koenig@amd.com>
Cc: Leon Romanovsky <leon@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Logan Gunthorpe <logang@deltatee.com>,
Jens Axboe <axboe@kernel.dk>, Robin Murphy <robin.murphy@arm.com>,
Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Andrew Morton <akpm@linux-foundation.org>,
Jonathan Corbet <corbet@lwn.net>,
Sumit Semwal <sumit.semwal@linaro.org>,
Kees Cook <kees@kernel.org>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
Ankit Agrawal <ankita@nvidia.com>,
Yishai Hadas <yishaih@nvidia.com>,
Shameer Kolothum <skolothumtho@nvidia.com>,
Kevin Tian <kevin.tian@intel.com>,
Alex Williamson <alex@shazbot.org>,
Krishnakant Jaju <kjaju@nvidia.com>, Matt Ochs <mochs@nvidia.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-block@vger.kernel.org, iommu@lists.linux.dev,
linux-mm@kvack.org, linux-doc@vger.kernel.org,
linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
linaro-mm-sig@lists.linaro.org, kvm@vger.kernel.org,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH v8 05/11] PCI/P2PDMA: Document DMABUF model
Date: Wed, 19 Nov 2025 09:35:29 -0400 [thread overview]
Message-ID: <20251119133529.GL17968@ziepe.ca> (raw)
In-Reply-To: <9798b34c-618b-4e89-82b0-803bc655c82b@amd.com>
On Wed, Nov 19, 2025 at 10:18:08AM +0100, Christian König wrote:
> > +As this is not well-defined or well-supported in real HW the kernel defaults to
> > +blocking such routing. There is an allow list to allow detecting known-good HW,
> > +in which case P2P between any two PCIe devices will be permitted.
>
> That section sounds not correct to me.
It is correct in that it describes what the kernel does right now.
See calc_map_type_and_dist(), host_bridge_whitelist(), cpu_supports_p2pdma().
> This is well supported in current HW, it's just not defined in some
> official specification.
Only AMD HW.
Intel HW is a bit hit and miss.
ARM SOCs are frequently not supporting even on server CPUs.
> > +At the lowest level the P2P subsystem offers a naked struct p2p_provider that
> > +delegates lifecycle management to the providing driver. It is expected that
> > +drivers using this option will wrap their MMIO memory in DMABUF and use DMABUF
> > +to provide an invalidation shutdown.
>
> > These MMIO pages have no struct page, and
>
> Well please drop "pages" here. Just say MMIO addresses.
"These MMIO addresses have no struct page, and"
> > +Building on this, the subsystem offers a layer to wrap the MMIO in a ZONE_DEVICE
> > +pgmap of MEMORY_DEVICE_PCI_P2PDMA to create struct pages. The lifecycle of
> > +pgmap ensures that when the pgmap is destroyed all other drivers have stopped
> > +using the MMIO. This option works with O_DIRECT flows, in some cases, if the
> > +underlying subsystem supports handling MEMORY_DEVICE_PCI_P2PDMA through
> > +FOLL_PCI_P2PDMA. The use of FOLL_LONGTERM is prevented. As this relies on pgmap
> > +it also relies on architecture support along with alignment and minimum size
> > +limitations.
>
> Actually that is up to the exporter of the DMA-buf what approach is used.
The above is not talking about DMA-buf, it is describing the existing
interface that is all struct page based. The driver invoking the
P2PDMA APIs gets to pick if it uses the stuct page based interface
described above or the lower level p2p provider interface this series
introduces.
> For the P2PDMA API it should be irrelevant if struct pages are used or not.
Only for the lowest level p2p provider based P2PDMA API - there is a
higher level API family within P2PDMA's API that is all about creating
and managing ZONE_DEVICE struct pages and a pgmap, the above describes
that family.
Thanks,
Jason
next prev parent reply other threads:[~2025-11-19 13:35 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-11 9:57 [PATCH v8 00/11] vfio/pci: Allow MMIO regions to be exported through dma-buf Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 01/11] PCI/P2PDMA: Separate the mmap() support from the core logic Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 02/11] PCI/P2PDMA: Simplify bus address mapping API Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 03/11] PCI/P2PDMA: Refactor to separate core P2P functionality from memory allocation Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 04/11] PCI/P2PDMA: Provide an access to pci_p2pdma_map_type() function Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 05/11] PCI/P2PDMA: Document DMABUF model Leon Romanovsky
2025-11-19 9:18 ` Christian König
2025-11-19 13:13 ` Leon Romanovsky
2025-11-19 13:35 ` Jason Gunthorpe [this message]
2025-11-19 14:06 ` Christian König
2025-11-19 19:45 ` Jason Gunthorpe
2025-11-19 20:45 ` Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 06/11] dma-buf: provide phys_vec to scatter-gather mapping routine Leon Romanovsky
2025-11-18 23:02 ` Jason Gunthorpe
2025-11-19 0:06 ` Nicolin Chen
2025-11-19 13:32 ` Leon Romanovsky
2025-11-19 5:54 ` Tian, Kevin
2025-11-19 13:30 ` Leon Romanovsky
2025-11-19 13:37 ` Jason Gunthorpe
2025-11-19 13:45 ` Leon Romanovsky
2025-11-19 13:16 ` [Linaro-mm-sig] " Christian König
2025-11-19 13:25 ` Jason Gunthorpe
2025-11-19 13:42 ` Christian König
2025-11-19 13:48 ` Leon Romanovsky
2025-11-19 19:31 ` Jason Gunthorpe
2025-11-19 20:54 ` Leon Romanovsky
2025-11-20 7:08 ` Christian König
2025-11-20 7:41 ` Leon Romanovsky
2025-11-20 7:54 ` Christian König
2025-11-20 8:06 ` Leon Romanovsky
2025-11-20 8:32 ` Christian König
2025-11-20 8:42 ` Leon Romanovsky
2025-11-20 13:20 ` Jason Gunthorpe
2025-11-19 13:42 ` Leon Romanovsky
2025-11-19 14:11 ` Christian König
2025-11-19 14:50 ` Leon Romanovsky
2025-11-19 14:53 ` Christian König
2025-11-19 15:41 ` Leon Romanovsky
2025-11-19 16:33 ` Leon Romanovsky
2025-11-20 7:03 ` Christian König
2025-11-20 7:38 ` Leon Romanovsky
2025-11-19 19:36 ` Jason Gunthorpe
2025-11-11 9:57 ` [PATCH v8 07/11] vfio: Export vfio device get and put registration helpers Leon Romanovsky
2025-11-18 7:10 ` Tian, Kevin
2025-11-11 9:57 ` [PATCH v8 08/11] vfio/pci: Share the core device pointer while invoking feature functions Leon Romanovsky
2025-11-18 7:11 ` Tian, Kevin
2025-11-11 9:57 ` [PATCH v8 09/11] vfio/pci: Enable peer-to-peer DMA transactions by default Leon Romanovsky
2025-11-18 7:18 ` Tian, Kevin
2025-11-18 20:10 ` Alex Williamson
2025-11-19 0:01 ` Tian, Kevin
2025-11-18 20:18 ` Keith Busch
2025-11-19 0:02 ` Tian, Kevin
2025-11-19 13:54 ` Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 10/11] vfio/pci: Add dma-buf export support for MMIO regions Leon Romanovsky
2025-11-18 7:33 ` Tian, Kevin
2025-11-18 14:28 ` Jason Gunthorpe
2025-11-18 23:56 ` Tian, Kevin
2025-11-19 19:41 ` Jason Gunthorpe
2025-11-19 20:50 ` Leon Romanovsky
2025-11-11 9:57 ` [PATCH v8 11/11] vfio/nvgrace: Support get_dmabuf_phys Leon Romanovsky
2025-11-18 7:34 ` Tian, Kevin
2025-11-18 7:59 ` Ankit Agrawal
2025-11-18 14:30 ` Jason Gunthorpe
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=20251119133529.GL17968@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=akpm@linux-foundation.org \
--cc=alex@shazbot.org \
--cc=ankita@nvidia.com \
--cc=axboe@kernel.dk \
--cc=bhelgaas@google.com \
--cc=christian.koenig@amd.com \
--cc=corbet@lwn.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=gustavoars@kernel.org \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=kees@kernel.org \
--cc=kevin.tian@intel.com \
--cc=kjaju@nvidia.com \
--cc=kvm@vger.kernel.org \
--cc=leon@kernel.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hardening@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=mochs@nvidia.com \
--cc=robin.murphy@arm.com \
--cc=skolothumtho@nvidia.com \
--cc=sumit.semwal@linaro.org \
--cc=will@kernel.org \
--cc=yishaih@nvidia.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).