From: "Christian König" <christian.koenig@amd.com>
To: "Leon Romanovsky" <leon@kernel.org>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Alex Deucher" <alexander.deucher@amd.com>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Chia-I Wu" <olvaffe@gmail.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Lucas De Marchi" <lucas.demarchi@intel.com>,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Kevin Tian" <kevin.tian@intel.com>,
"Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
"Robin Murphy" <robin.murphy@arm.com>,
"Felix Kuehling" <Felix.Kuehling@amd.com>,
"Alex Williamson" <alex@shazbot.org>,
"Ankit Agrawal" <ankita@nvidia.com>,
"Vivek Kasireddy" <vivek.kasireddy@intel.com>
Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org,
amd-gfx@lists.freedesktop.org, virtualization@lists.linux.dev,
intel-xe@lists.freedesktop.org, linux-rdma@vger.kernel.org,
iommu@lists.linux.dev, kvm@vger.kernel.org
Subject: Re: [PATCH v3 2/7] dma-buf: Always build with DMABUF_MOVE_NOTIFY
Date: Wed, 21 Jan 2026 09:55:38 +0100 [thread overview]
Message-ID: <24c7a7e6-b1bd-4407-b62d-4d9ea4cdeee4@amd.com> (raw)
In-Reply-To: <20260120-dmabuf-revoke-v3-2-b7e0b07b8214@nvidia.com>
On 1/20/26 15:07, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
>
> DMABUF_MOVE_NOTIFY was introduced in 2018 and has been marked as
> experimental and disabled by default ever since. Six years later,
> all new importers implement this callback.
>
> It is therefore reasonable to drop CONFIG_DMABUF_MOVE_NOTIFY and
> always build DMABUF with support for it enabled.
>
> Suggested-by: Christian König <christian.koenig@amd.com>
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
> drivers/dma-buf/Kconfig | 12 ------------
> drivers/dma-buf/dma-buf.c | 12 ++----------
> drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 10 +++-------
> drivers/gpu/drm/amd/amdkfd/Kconfig | 2 +-
> drivers/gpu/drm/xe/tests/xe_dma_buf.c | 3 +--
> drivers/gpu/drm/xe/xe_dma_buf.c | 12 ++++--------
> 6 files changed, 11 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/dma-buf/Kconfig b/drivers/dma-buf/Kconfig
> index b46eb8a552d7..84d5e9b24e20 100644
> --- a/drivers/dma-buf/Kconfig
> +++ b/drivers/dma-buf/Kconfig
> @@ -40,18 +40,6 @@ config UDMABUF
> A driver to let userspace turn memfd regions into dma-bufs.
> Qemu can use this to create host dmabufs for guest framebuffers.
>
> -config DMABUF_MOVE_NOTIFY
> - bool "Move notify between drivers (EXPERIMENTAL)"
> - default n
> - depends on DMA_SHARED_BUFFER
> - help
> - Don't pin buffers if the dynamic DMA-buf interface is available on
> - both the exporter as well as the importer. This fixes a security
> - problem where userspace is able to pin unrestricted amounts of memory
> - through DMA-buf.
> - This is marked experimental because we don't yet have a consistent
> - execution context and memory management between drivers.
> -
> config DMABUF_DEBUG
> bool "DMA-BUF debug checks"
> depends on DMA_SHARED_BUFFER
> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> index 59cc647bf40e..cd3b60ce4863 100644
> --- a/drivers/dma-buf/dma-buf.c
> +++ b/drivers/dma-buf/dma-buf.c
> @@ -837,18 +837,10 @@ static void mangle_sg_table(struct sg_table *sg_table)
>
> }
>
> -static inline bool
> -dma_buf_attachment_is_dynamic(struct dma_buf_attachment *attach)
I would rather like to keep the wrapper and even add some explanation what it means when true is returned.
Apart from that looks good to me.
Regards,
Christian.
> -{
> - return !!attach->importer_ops;
> -}
> -
> static bool
> dma_buf_pin_on_map(struct dma_buf_attachment *attach)
> {
> - return attach->dmabuf->ops->pin &&
> - (!dma_buf_attachment_is_dynamic(attach) ||
> - !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY));
> + return attach->dmabuf->ops->pin && !attach->importer_ops;
> }
>
> /**
> @@ -1124,7 +1116,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
> /*
> * Importers with static attachments don't wait for fences.
> */
> - if (!dma_buf_attachment_is_dynamic(attach)) {
> + if (!attach->importer_ops) {
> ret = dma_resv_wait_timeout(attach->dmabuf->resv,
> DMA_RESV_USAGE_KERNEL, true,
> MAX_SCHEDULE_TIMEOUT);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
> index 863454148b28..349215549e8f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
> @@ -145,13 +145,9 @@ static int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach)
> * notifiers are disabled, only allow pinning in VRAM when move
> * notiers are enabled.
> */
> - if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
> - domains &= ~AMDGPU_GEM_DOMAIN_VRAM;
> - } else {
> - list_for_each_entry(attach, &dmabuf->attachments, node)
> - if (!attach->peer2peer)
> - domains &= ~AMDGPU_GEM_DOMAIN_VRAM;
> - }
> + list_for_each_entry(attach, &dmabuf->attachments, node)
> + if (!attach->peer2peer)
> + domains &= ~AMDGPU_GEM_DOMAIN_VRAM;
>
> if (domains & AMDGPU_GEM_DOMAIN_VRAM)
> bo->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
> diff --git a/drivers/gpu/drm/amd/amdkfd/Kconfig b/drivers/gpu/drm/amd/amdkfd/Kconfig
> index 16e12c9913f9..a5d7467c2f34 100644
> --- a/drivers/gpu/drm/amd/amdkfd/Kconfig
> +++ b/drivers/gpu/drm/amd/amdkfd/Kconfig
> @@ -27,7 +27,7 @@ config HSA_AMD_SVM
>
> config HSA_AMD_P2P
> bool "HSA kernel driver support for peer-to-peer for AMD GPU devices"
> - depends on HSA_AMD && PCI_P2PDMA && DMABUF_MOVE_NOTIFY
> + depends on HSA_AMD && PCI_P2PDMA
> help
> Enable peer-to-peer (P2P) communication between AMD GPUs over
> the PCIe bus. This can improve performance of multi-GPU compute
> diff --git a/drivers/gpu/drm/xe/tests/xe_dma_buf.c b/drivers/gpu/drm/xe/tests/xe_dma_buf.c
> index 1f2cca5c2f81..c107687ef3c0 100644
> --- a/drivers/gpu/drm/xe/tests/xe_dma_buf.c
> +++ b/drivers/gpu/drm/xe/tests/xe_dma_buf.c
> @@ -22,8 +22,7 @@ static bool p2p_enabled(struct dma_buf_test_params *params)
>
> static bool is_dynamic(struct dma_buf_test_params *params)
> {
> - return IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY) && params->attach_ops &&
> - params->attach_ops->invalidate_mappings;
> + return params->attach_ops && params->attach_ops->invalidate_mappings;
> }
>
> static void check_residency(struct kunit *test, struct xe_bo *exported,
> diff --git a/drivers/gpu/drm/xe/xe_dma_buf.c b/drivers/gpu/drm/xe/xe_dma_buf.c
> index 1b9cd043e517..ea370cd373e9 100644
> --- a/drivers/gpu/drm/xe/xe_dma_buf.c
> +++ b/drivers/gpu/drm/xe/xe_dma_buf.c
> @@ -56,14 +56,10 @@ static int xe_dma_buf_pin(struct dma_buf_attachment *attach)
> bool allow_vram = true;
> int ret;
>
> - if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
> - allow_vram = false;
> - } else {
> - list_for_each_entry(attach, &dmabuf->attachments, node) {
> - if (!attach->peer2peer) {
> - allow_vram = false;
> - break;
> - }
> + list_for_each_entry(attach, &dmabuf->attachments, node) {
> + if (!attach->peer2peer) {
> + allow_vram = false;
> + break;
> }
> }
>
>
next prev parent reply other threads:[~2026-01-21 8:55 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-20 14:07 [PATCH v3 0/7] dma-buf: Use revoke mechanism to invalidate shared buffers Leon Romanovsky
2026-01-20 14:07 ` [PATCH v3 1/7] dma-buf: Rename .move_notify() callback to a clearer identifier Leon Romanovsky
2026-01-21 8:33 ` Christian König
2026-01-21 8:41 ` Leon Romanovsky
2026-01-20 14:07 ` [PATCH v3 2/7] dma-buf: Always build with DMABUF_MOVE_NOTIFY Leon Romanovsky
2026-01-21 8:55 ` Christian König [this message]
2026-01-21 10:14 ` Leon Romanovsky
2026-01-21 10:57 ` Christian König
2026-01-20 14:07 ` [PATCH v3 3/7] dma-buf: Document RDMA non-ODP invalidate_mapping() special case Leon Romanovsky
2026-01-21 8:59 ` Christian König
2026-01-21 9:14 ` Leon Romanovsky
2026-01-21 9:17 ` Christian König
2026-01-21 13:18 ` Jason Gunthorpe
2026-01-21 13:52 ` Christian König
2026-01-21 13:59 ` Jason Gunthorpe
2026-01-21 14:15 ` Christian König
2026-01-21 14:31 ` Leon Romanovsky
2026-01-21 15:39 ` Jason Gunthorpe
2026-01-20 14:07 ` [PATCH v3 4/7] dma-buf: Add check function for revoke semantics Leon Romanovsky
2026-01-20 14:07 ` [PATCH v3 5/7] iommufd: Pin dma-buf importer " Leon Romanovsky
2026-01-21 9:01 ` Christian König
2026-01-20 14:07 ` [PATCH v3 6/7] vfio: Wait for dma-buf invalidation to complete Leon Romanovsky
2026-01-20 20:44 ` Matthew Brost
2026-01-21 7:59 ` Leon Romanovsky
2026-01-21 10:41 ` Christian König
2026-01-21 10:44 ` Leon Romanovsky
2026-01-21 17:18 ` Matthew Brost
2026-01-21 9:20 ` Christian König
2026-01-21 9:36 ` Thomas Hellström
2026-01-21 10:55 ` Christian König
2026-01-21 13:31 ` Jason Gunthorpe
2026-01-21 15:28 ` Christian König
2026-01-21 16:01 ` Jason Gunthorpe
2026-01-21 19:45 ` Leon Romanovsky
2026-01-22 11:32 ` Christian König
2026-01-22 23:44 ` Jason Gunthorpe
2026-01-23 14:11 ` Jason Gunthorpe
2026-01-23 16:23 ` Christian König
2026-01-23 16:31 ` Jason Gunthorpe
2026-01-20 14:07 ` [PATCH v3 7/7] vfio: Validate dma-buf revocation semantics 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=24c7a7e6-b1bd-4407-b62d-4d9ea4cdeee4@amd.com \
--to=christian.koenig@amd.com \
--cc=Felix.Kuehling@amd.com \
--cc=airlied@gmail.com \
--cc=alex@shazbot.org \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=ankita@nvidia.com \
--cc=dmitry.osipenko@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gurchetansingh@chromium.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=iommu@lists.linux.dev \
--cc=jgg@ziepe.ca \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=leon@kernel.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=olvaffe@gmail.com \
--cc=robin.murphy@arm.com \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=sumit.semwal@linaro.org \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tzimmermann@suse.de \
--cc=virtualization@lists.linux.dev \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox