From: "Christian König" <christian.koenig@amd.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Dongwon Kim <dongwon.kim@intel.com>,
dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
iommu@lists.linux.dev, Kevin Tian <kevin.tian@intel.com>,
Leon Romanovsky <leonro@nvidia.com>,
linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org,
Matthew Brost <matthew.brost@intel.com>,
Simona Vetter <simona.vetter@ffwll.ch>,
Sumit Semwal <sumit.semwal@linaro.org>,
Thomas Hellstrom <thomas.hellstrom@linux.intel.com>,
Vivek Kasireddy <vivek.kasireddy@intel.com>
Subject: Re: [PATCH RFC 21/26] dma-buf: Add the Physical Address List DMA mapping type
Date: Wed, 22 Apr 2026 16:04:19 +0200 [thread overview]
Message-ID: <e67426b9-4ded-4f6c-8309-7f847adb4540@amd.com> (raw)
In-Reply-To: <20260422131337.GJ3199414@nvidia.com>
On 4/22/26 15:13, Jason Gunthorpe wrote:
> On Wed, Apr 22, 2026 at 02:39:16PM +0200, Christian König wrote:
>>> Can you be more specific please, I still have no idea what you are
>>> thinking in terms of an acceptable implementation.
>>
>> Let me try to describe it differently:
>>
>> The iommufd deals with iommu_domain structures which userspace can map different things into.
>>
>> So of hand I would say that an interface to map DMA-buf into such an
>> iommu_domain should look something like this:
>>
>> dma_buf_map_attachment_iommu(struct dma_buf_attachment *attachment,
>> struct iommu_domain *domain, unsigned long iova, unsigned long
>> offset, size_t size, ...);
>>
>> The DMA buf exporter then maps the its data into the iommu_domain at
>> iova starting with offset from within the buffer and size number of
>> bytes.
>
> Well, my first reaction is very negative, this suggestion is leaking
> deep internal details like iommu_domain out of the single place that
> needs them - iommufd - into about 6 exporter drivers. Not nice. I have
> the mirror of your concern that I don't trust DRM drivers not to abuse
> the iommu_domain pointer in some very creative way.
Yeah, of course that argument goes into both directions.
The point is just that we have much more importers than exporters to handle, and from experience it was always the importer who messed things up.
Background is that the importer integrates the buffer into it's own handling which might not be made for the way the exporter is expecting things to be used.
The result ranged from extremely hard to debug data corruption issues all the way to security issues because somebody used vm_insert_page()/vm_insert_pfn() with a different address space object than the exporter expected to be used for it's memory.
> However. With a suitable helper we can largely isolate this to a
> single function and yeah I can see making this functional.
The important point is that the exporter should not need to expose it's physical data store and how it's housekeeping works.
As long as we can guarantee that I'm fine with it.
> Not sure how this can work for KVM, but I'm getting the feeling the
> way forward here is to "live and learn" together.
>
> So, in the context of this series, your proposal is an iommu_domain
> mapping type, to replace PAL. Yes?
Something like that, yes.
> Do you have a positive feeling about the general mapping type system
> from the earlier patches?
As far as I can see that goes into the right direction, yes.
>
> I think if you want these kinds of APIs there are going to be several
> mapping types required to exchange their very narrowly defined
> details: scatterlist, scatterlist-ng, iommu_domain, the Intel vfio
> thing, UALink, driver private interconnects, and whatever KVM needs.
Plus those strange device to device interfaces you find on ARM/Android which people currently manage out of the upstream kernel and happen to break all the time.
> Thus I think this is making a stronger case that we should have this
> formal negotiation protocol between exporter and importer for the
> mapping types.
Yes, absolutely.
Regards,
Christian.
>
> Thanks,
> Jason
next prev parent reply other threads:[~2026-04-22 14:04 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-18 0:11 [PATCH RFC 00/26] Add DMA-buf mapping types and convert vfio/iommufd to use them Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 01/26] dma-buf: Introduce DMA-buf mapping types Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 02/26] dma-buf: Add the SGT DMA mapping type Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 03/26] dma-buf: Add dma_buf_mapping_attach() Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 04/26] dma-buf: Route SGT related actions through attach->map_type Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 05/26] dma-buf: Allow single exporter drivers to avoid the match_mapping function Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 06/26] drm: Check the SGT ops for drm_gem_map_dma_buf() Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 07/26] dma-buf: Convert all the simple exporters to use SGT mapping type Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 08/26] drm/vmwgfx: Use match_mapping instead of dummy calls Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 09/26] accel/habanalabs: Use the SGT mapping type Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 10/26] drm/xe/dma-buf: " Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 11/26] drm/amdgpu: " Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 12/26] vfio/pci: Change the DMA-buf exporter to use mapping_type Jason Gunthorpe
2026-04-13 8:29 ` Baolu Lu
2026-04-13 13:01 ` Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 13/26] dma-buf: Update dma_buf_phys_vec_to_sgt() to use the SGT mapping type Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 14/26] iio: buffer: convert " Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 15/26] functionfs: " Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 16/26] dma-buf: Remove unused SGT stuff from the common structures Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 17/26] treewide: Rename dma_buf_map_attachment(_unlocked) to dma_buf_sgt_ Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 18/26] treewide: Rename dma_buf_unmap_attachment(_unlocked) to dma_buf_sgt_* Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 19/26] treewide: Rename dma_buf_attach() to dma_buf_sgt_attach() Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 20/26] treewide: Rename dma_buf_dynamic_attach() to dma_buf_sgt_dynamic_attach() Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 21/26] dma-buf: Add the Physical Address List DMA mapping type Jason Gunthorpe
2026-04-13 8:58 ` Christian König
2026-04-13 12:16 ` Jason Gunthorpe
2026-04-22 8:17 ` Christian König
2026-04-22 11:53 ` Jason Gunthorpe
2026-04-22 12:39 ` Christian König
2026-04-22 13:13 ` Jason Gunthorpe
2026-04-22 14:04 ` Christian König [this message]
2026-04-22 15:00 ` Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 22/26] vfio/pci: Add physical address list support to DMABUF Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 23/26] iommufd: Use the PAL mapping type instead of a vfio function Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 24/26] iommufd: Support DMA-bufs with multiple physical ranges Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 25/26] iommufd/selftest: Check multi-phys DMA-buf scenarios Jason Gunthorpe
2026-02-18 0:11 ` [PATCH RFC 26/26] dma-buf: Add kunit tests for mapping type Jason Gunthorpe
2026-03-01 19:05 ` [PATCH RFC 00/26] Add DMA-buf mapping types and convert vfio/iommufd to use them Jason Gunthorpe
2026-03-03 7:07 ` Kasireddy, Vivek
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=e67426b9-4ded-4f6c-8309-7f847adb4540@amd.com \
--to=christian.koenig@amd.com \
--cc=dongwon.kim@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=kevin.tian@intel.com \
--cc=leonro@nvidia.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-media@vger.kernel.org \
--cc=matthew.brost@intel.com \
--cc=simona.vetter@ffwll.ch \
--cc=sumit.semwal@linaro.org \
--cc=thomas.hellstrom@linux.intel.com \
--cc=vivek.kasireddy@intel.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