From: Alistair Popple <apopple@nvidia.com>
To: Karl Mehltretter <kmehltretter@gmail.com>
Cc: dri-devel@lists.freedesktop.org, christian.koenig@amd.com,
sumit.semwal@linaro.org, jgg@nvidia.com,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Simona Vetter" <simona.vetter@ffwll.ch>,
"Matthew Brost" <matthew.brost@intel.com>,
"Vivek Kasireddy" <vivek.kasireddy@intel.com>,
"Dongwon Kim" <dongwon.kim@intel.com>,
"Leon Romanovsky" <leonro@nvidia.com>,
"Kevin Tian" <kevin.tian@intel.com>,
"Xu Yilun" <yilun.xu@linux.intel.com>,
"Baolu Lu" <baolu.lu@linux.intel.com>,
"Felix Kuehling" <felix.kuehling@amd.com>,
"Alex Deucher" <alexander.deucher@amd.com>,
intel-xe@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
linux-rdma@vger.kernel.org, iommu@lists.linux.dev,
"Alexey Kardashevskiy" <aik@amd.com>,
zhipingz@meta.com, treding@nvidia.com, jhubbard@nvidia.com
Subject: Re: [PATCH 05/26] dma-buf: Let the exporter select mapping type at pin/map
Date: Tue, 27 Oct 2026 16:46:22 +1100 [thread overview]
Message-ID: <auA0XzHv9lgImZLP@nvdebian.thelocal> (raw)
In-Reply-To: <at8IQZ34wkHQ_5PL@gmail.com>
On 2026-10-26 at 19:03 +1100, Karl Mehltretter <kmehltretter@gmail.com> wrote...
> On Mon, Oct 26, 2026 at 04:35:56PM +0100, Alistair Popple wrote:
> > +struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
> > + enum dma_data_direction direction)
> > +{
> > + struct sg_table *sg_table;
> > + int ret;
> > +
> > + might_sleep();
> > +
> > + if (WARN_ON(!attach || !attach->dmabuf))
> > + return ERR_PTR(-EINVAL);
> > +
> > + dma_resv_assert_held(attach->dmabuf->resv);
> > +
> > + ret = dma_buf_mapping_select(attach);
> > + if (ret)
> > + return ERR_PTR(ret);
> > +
> > + sg_table = __dma_buf_sgt_map_attachment(attach, direction);
> > + if (IS_ERR(sg_table))
> > + /* Nothing was established, so the choice may be made afresh */
> > + attach->selected = false;
> > +
> > + return sg_table;
> > +}
>
> The map-failure report from Sashiko [1] reproduces with a KUnit test
> against the full series:
>
> pin selects B -> map returns -EIO -> selected is cleared
> -> retry selects A, with the original pin still held
>
> The exporter pin count stays at 1. Preserving selected when it was true
> on entry makes the test pass. Patch 7 needs the same fix.
Agreed, thanks for looking. A failed map shouldn't undo a previous selection.
> Could dma_buf_mapping_select() report whether it made a new selection?
> Then the error path could undo only that choice, without dropping one
> established by an earlier pin or map.
We could do. At one stage I had a prototype of this returning the old match, but
that got complicated. We do need to undo in the error path though, so will fix
this for v2.
> On the Sashiko failed-pin report:
> ("Because the attachment is not pinned, the exporter may migrate the
> buffer elsewhere without invalidating it")
>
> I don't think this follows from the documented contract.
> select_mapping() requires the exporter to keep the recorded type
> servable and invalidate before an incompatible move. That obligation
> still applies if ops->pin() fails.
Yes, I think that statement is correct.
> Is retaining the selection after a failed pin intentional? If so, this
> can be added as a test documenting that alongside the map-failure
> regression test.
No, that was not intentional. As noted about I think if the first pin/map of an
attachment failed it should effectively go back to the selected = false state.
- Alistair
> Thanks,
> Karl
next prev parent reply other threads:[~2026-10-27 5:46 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 5:35 [PATCH 00/26] DMA-buf mapping types Alistair Popple
2026-10-26 5:35 ` [PATCH 01/26] dma-buf: Introduce " Alistair Popple
2026-10-26 7:00 ` sashiko-bot
2026-10-26 5:35 ` [PATCH 02/26] dma-buf: Add the SGT DMA mapping type Alistair Popple
2026-10-26 7:04 ` sashiko-bot
2026-10-26 5:35 ` [PATCH 03/26] dma-buf: Add dma_buf_mapping_attach() Alistair Popple
2026-10-26 7:20 ` sashiko-bot
2026-10-26 5:35 ` [PATCH 04/26] dma-buf: Route SGT related actions through attach->map_type Alistair Popple
2026-10-26 7:29 ` sashiko-bot
2026-10-26 5:35 ` [PATCH 05/26] dma-buf: Let the exporter select mapping type at pin/map Alistair Popple
2026-10-26 7:39 ` sashiko-bot
2026-10-26 8:03 ` Karl Mehltretter
2026-10-27 5:46 ` Alistair Popple [this message]
2026-10-26 5:35 ` [PATCH 06/26] dma-buf: Add match set queries for exporter placement decisions Alistair Popple
2026-10-26 7:42 ` sashiko-bot
2026-10-26 5:35 ` [PATCH 07/26] dma-buf: Add dma_buf_mapping_map() returning a type-tagged mapping Alistair Popple
2026-10-26 7:56 ` sashiko-bot
2026-10-26 5:35 ` [PATCH 08/26] dma-buf: Allow single exporter drivers to avoid the match_mapping function Alistair Popple
2026-10-26 7:58 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 09/26] drm: Check the SGT ops for drm_gem_map_dma_buf() Alistair Popple
2026-10-26 8:02 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 10/26] dma-buf: Convert all the simple exporters to use SGT mapping type Alistair Popple
2026-10-26 8:12 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 11/26] drm/vmwgfx: Use match_mapping instead of dummy calls Alistair Popple
2026-10-26 8:13 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 12/26] accel/habanalabs: Use the SGT_P2P mapping type Alistair Popple
2026-10-26 8:18 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 13/26] drm/xe/dma-buf: Use the SGT " Alistair Popple
2026-10-26 8:34 ` sashiko-bot
2026-10-27 4:26 ` Alistair Popple
2026-10-26 5:36 ` [PATCH 14/26] drm/amdgpu: " Alistair Popple
2026-10-26 8:46 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 15/26] vfio/pci: Change the DMA-buf exporter to use mapping_type Alistair Popple
2026-10-26 9:00 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 16/26] RDMA/uverbs: Use the SGT_P2P mapping type Alistair Popple
2026-10-26 9:16 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 17/26] dma-buf: Update dma_buf_phys_vec_to_sgt() to use the SGT " Alistair Popple
2026-10-26 9:26 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 18/26] iio: buffer: convert " Alistair Popple
2026-10-26 9:28 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 19/26] functionfs: " Alistair Popple
2026-10-26 9:35 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 20/26] dma-buf: Remove unused SGT stuff from the common structures Alistair Popple
2026-10-26 9:39 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 21/26] treewide: Rename dma_buf_map_attachment(_unlocked) to dma_buf_sgt_ Alistair Popple
2026-10-26 9:49 ` sashiko-bot
2026-10-27 12:05 ` Christian König
2026-10-27 12:35 ` Jason Gunthorpe
2026-10-26 5:36 ` [PATCH 22/26] treewide: Rename dma_buf_unmap_attachment(_unlocked) to dma_buf_sgt_* Alistair Popple
2026-10-26 9:56 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 23/26] treewide: Rename dma_buf_attach() to dma_buf_sgt_attach() Alistair Popple
2026-10-26 10:01 ` sashiko-bot
2026-10-27 2:15 ` Karl Mehltretter
2026-10-27 3:42 ` Mikko Perttunen
2026-10-27 12:33 ` Jason Gunthorpe
2026-10-27 13:34 ` Mikko Perttunen
2026-10-27 13:43 ` Christian König
2026-10-27 12:11 ` Christian König
2026-10-27 12:31 ` Jason Gunthorpe
2026-10-27 12:07 ` Christian König
2026-10-27 12:38 ` Jason Gunthorpe
2026-10-27 13:17 ` Christian König
2026-10-27 14:08 ` Jason Gunthorpe
2026-10-27 14:28 ` Christian König
2026-10-27 14:44 ` Jason Gunthorpe
2026-10-27 14:54 ` Christian König
2026-10-26 5:36 ` [PATCH 24/26] treewide: Rename dma_buf_dynamic_attach() to dma_buf_sgt_dynamic_attach() Alistair Popple
2026-10-26 10:13 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 25/26] dma-buf: Add kunit tests for mapping type Alistair Popple
2026-10-26 10:19 ` sashiko-bot
2026-10-26 5:36 ` [PATCH 26/26] dma-buf: Add kunit tests for mapping type selection Alistair Popple
2026-10-26 10:22 ` sashiko-bot
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=auA0XzHv9lgImZLP@nvdebian.thelocal \
--to=apopple@nvidia.com \
--cc=aik@amd.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=baolu.lu@linux.intel.com \
--cc=christian.koenig@amd.com \
--cc=dongwon.kim@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=felix.kuehling@amd.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=jhubbard@nvidia.com \
--cc=kevin.tian@intel.com \
--cc=kmehltretter@gmail.com \
--cc=leonro@nvidia.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rdma@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=treding@nvidia.com \
--cc=vivek.kasireddy@intel.com \
--cc=yilun.xu@linux.intel.com \
--cc=zhipingz@meta.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 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.