All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Jiri Pirko <jiri@resnulli.us>
Cc: linux-rdma@vger.kernel.org, jgg@ziepe.ca, edwards@nvidia.com,
	kees@kernel.org, parav@nvidia.com, mbloch@nvidia.com,
	yishaih@nvidia.com, lirongqing@baidu.com,
	huangjunxian6@hisilicon.com, liuy22@mails.tsinghua.edu.cn,
	jmoroni@google.com
Subject: Re: [PATCH rdma-next v2 2/2] RDMA/umem: block plain userspace memory registration under CoCo bounce
Date: Thu, 14 May 2026 19:25:06 +0300	[thread overview]
Message-ID: <20260514162506.GR15586@unreal> (raw)
In-Reply-To: <agMzXaCIhX4m7ldo@FV6GYCPJ69>

On Tue, May 12, 2026 at 04:04:13PM +0200, Jiri Pirko wrote:
> Tue, May 12, 2026 at 03:05:15PM CEST, leon@kernel.org wrote:
> >On Wed, May 06, 2026 at 01:14:47PM +0200, Jiri Pirko wrote:
> >> From: Jiri Pirko <jiri@nvidia.com>
> >> 
> >> When a device requires DMA bounce buffering inside a Confidential
> >> Computing guest, __ib_umem_get_va() cannot work. The DMA mapping layer
> >> redirects all mappings through swiotlb bounce buffers, so the device
> >> receives DMA addresses pointing to bounce buffer memory rather than
> >> the user's pages. Since RDMA devices access registered memory directly
> >> without CPU involvement, there is no opportunity for swiotlb to
> >> synchronize between the bounce buffer and the original pages.
> >> 
> >> The registration would already fail later on, since the umem mapping
> >> is requested with DMA_ATTR_REQUIRE_COHERENT and gets rejected under
> >> is_swiotlb_force_bounce() with -EIO. Fail early with -EOPNOTSUPP
> >> instead, so the user gets a specific error code to react to.
> >
> >DMA_ATTR_REQUIRE_COHERENT was our answer to "layering violation claim".
> 
> I'm not sure I follow. What's the issue you see?

SWIOTLB is the layer below DMA API, RDMA is the layer above DMA API.
You shouldn't call to SWIOTLB functions in RDMA code.

Thanks

> 
> 
> 
> 
> >
> >Thanks
> >
> >> 
> >> Signed-off-by: Jiri Pirko <jiri@nvidia.com>
> >> ---
> >> v1->v2:
> >> - updated patch description with mention of DMA_ATTR_REQUIRE_COHERENT
> >> ---
> >>  drivers/infiniband/core/umem.c | 3 +++
> >>  1 file changed, 3 insertions(+)
> >> 
> >> diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
> >> index 611d693eb9a2..b1877b83b021 100644
> >> --- a/drivers/infiniband/core/umem.c
> >> +++ b/drivers/infiniband/core/umem.c
> >> @@ -167,6 +167,9 @@ static struct ib_umem *__ib_umem_get_va(struct ib_device *device,
> >>  	int pinned, ret;
> >>  	unsigned int gup_flags = FOLL_LONGTERM;
> >>  
> >> +	if (device->cc_dma_bounce)
> >> +		return ERR_PTR(-EOPNOTSUPP);
> >> +
> >>  	/*
> >>  	 * If the combination of the addr and size requested for this memory
> >>  	 * region causes an integer overflow, return error.
> >> -- 
> >> 2.53.0
> >> 

  reply	other threads:[~2026-05-14 16:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-06 11:14 [PATCH rdma-next v2 0/2] RDMA: detect and handle CoCo DMA bounce buffering Jiri Pirko
2026-05-06 11:14 ` [PATCH rdma-next v2 1/2] RDMA/uverbs: expose CoCo DMA bounce requirement to userspace Jiri Pirko
2026-05-12 13:03   ` Leon Romanovsky
2026-05-12 14:03     ` Jiri Pirko
2026-05-12 14:05       ` Jason Gunthorpe
2026-05-12 14:08         ` Jiri Pirko
2026-05-12 14:34           ` Jason Gunthorpe
2026-05-12 18:30             ` Jiri Pirko
2026-05-06 11:14 ` [PATCH rdma-next v2 2/2] RDMA/umem: block plain userspace memory registration under CoCo bounce Jiri Pirko
2026-05-12 13:05   ` Leon Romanovsky
2026-05-12 14:04     ` Jiri Pirko
2026-05-14 16:25       ` Leon Romanovsky [this message]
2026-05-15  6:13         ` Jiri Pirko
2026-05-06 12:52 ` [PATCH rdma-next v2 0/2] RDMA: detect and handle CoCo DMA bounce buffering Jacob Moroni

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=20260514162506.GR15586@unreal \
    --to=leon@kernel.org \
    --cc=edwards@nvidia.com \
    --cc=huangjunxian6@hisilicon.com \
    --cc=jgg@ziepe.ca \
    --cc=jiri@resnulli.us \
    --cc=jmoroni@google.com \
    --cc=kees@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=lirongqing@baidu.com \
    --cc=liuy22@mails.tsinghua.edu.cn \
    --cc=mbloch@nvidia.com \
    --cc=parav@nvidia.com \
    --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 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.