All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: linux-rdma@vger.kernel.org, leon@kernel.org, mrgolin@amazon.com,
	 gal.pressman@linux.dev, sleybo@amazon.com, parav@nvidia.com,
	mbloch@nvidia.com,  yanjun.zhu@linux.dev,
	marco.crivellari@suse.com, roman.gushchin@linux.dev,
	 phaddad@nvidia.com, lirongqing@baidu.com, ynachum@amazon.com,
	 huangjunxian6@hisilicon.com,
	kalesh-anakkur.purayil@broadcom.com, ohartoov@nvidia.com,
	 michaelgur@nvidia.com, shayd@nvidia.com, edwards@nvidia.com,
	 sriharsha.basavapatna@broadcom.com,
	andrew.gospodarek@broadcom.com, selvin.xavier@broadcom.com
Subject: Re: [PATCH rdma-next v3 03/17] RDMA/core: Introduce generic buffer descriptor infrastructure for umem
Date: Wed, 13 May 2026 21:18:28 +0200	[thread overview]
Message-ID: <agTNeYSOyMTbUbNt@FV6GYCPJ69> (raw)
In-Reply-To: <20260512181236.GA175362@ziepe.ca>

Tue, May 12, 2026 at 08:12:36PM +0200, jgg@ziepe.ca wrote:
>On Wed, May 06, 2026 at 04:14:34PM +0200, Jiri Pirko wrote:
>> Wed, May 06, 2026 at 03:37:57PM +0200, jgg@ziepe.ca wrote:
>> >On Mon, May 04, 2026 at 03:57:17PM +0200, Jiri Pirko wrote:
>> >
>> >> +/**
>> >> + * ib_umem_get - Canonical on-demand umem getter.
>> >> + * @device:        IB device.
>> >> + * @udata:         uverbs udata bundle (may be NULL).
>> >> + * @attr_id:       per-command UMEM attribute id; consulted if @udata is set.
>> >> + * @legacy_filler: optional command-specific legacy attr filler.
>> >> + *                 invoked if @udata is set.
>> >> + * @va_fallback:   if true, build a VA-typed desc with @addr.
>> >> + * @addr:          user VA, used if @va_fallback is true.
>> >> + * @size:          driver-required minimum length.
>> >> + * @access:        IB access flags forwarded to ib_umem_get_desc().
>> >> + *
>> >> + * Return: valid umem on success, ERR_PTR(...) on error, NULL
>> >> + * if no source produced a buffer (only possible when @va_fallback is false).
>> >> + */
>> >> +struct ib_umem *ib_umem_get(struct ib_device *device, struct ib_udata *udata,
>> >> +			    u16 attr_id,
>> >> +			    ib_umem_buf_desc_filler_t legacy_filler,
>> >> +			    bool va_fallback, u64 addr, size_t size, int access)
>> >
>> >I didn't try to look at what the drivers actually do, but I'm slightly
>> >surprised not to see an addr_size here? Is it the case the drivers
>> >don't have have a uhw->size to go along with their uhw->va?
>> 
>> "size_t size". What am I missing?
>
>size is the minimum length, not the actual length passed into the
>system call

Right, you're correct. Size is the post-pin minimum, and on
the VA fallback path it serves also as the pin length (we synthesize
desc.length = size when no attr/legacy filler matched).

There's no addr_size because no caller has a user-passed
length distinct from the driver-required minimum.
Drivers either have no length in their legacy ucmd (mlx4/mlx5 CQ, mlx5 QP,
the size is driver-computed from entries*cqe_size etc.) or they
pass ucmd.buf_size which serves as both (vmw_pvrdma, qedr, mlx5
SRQ, ...).

The legacy-filler path does carry a real user-passed
length (desc->length from UVERBS_ATTR_CREATE_CQ_BUFFER_LENGTH or
the per-attribute UMEM payload), and there size is purely the
post-pin check.

I'll tighten the kernel-doc to spell out the dual role:

  @size: minimum required umem length; also used as the pin
         length on the VA fallback path.

Makes sense?

[..]

  reply	other threads:[~2026-05-13 19:18 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-04 13:57 [PATCH rdma-next v3 00/17] RDMA: Introduce generic buffer descriptor infrastructure for umem Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 01/17] RDMA/umem: Rename ib_umem_get() to ib_umem_get_va() Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 02/17] RDMA/umem: Split ib_umem_get_va() into a thin wrapper around __ib_umem_get_va() Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 03/17] RDMA/core: Introduce generic buffer descriptor infrastructure for umem Jiri Pirko
2026-05-06 13:37   ` Jason Gunthorpe
2026-05-06 14:14     ` Jiri Pirko
2026-05-12 18:12       ` Jason Gunthorpe
2026-05-13 19:18         ` Jiri Pirko [this message]
2026-05-13 23:34           ` Jason Gunthorpe
2026-05-14  9:02             ` Jiri Pirko
2026-05-14 12:14               ` Jason Gunthorpe
2026-05-15 15:31                 ` Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 04/17] RDMA/umem: Route ib_umem_get_va() through ib_umem_get() Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 05/17] RDMA/uverbs: Inline _uverbs_get_const_{signed,unsigned}() Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 06/17] RDMA/uverbs: Push out CQ buffer umem processing into a helper Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 07/17] RDMA/uverbs: Add CQ buffer UMEM attribute and driver helpers Jiri Pirko
2026-05-06 13:46   ` Jason Gunthorpe
2026-05-06 14:27     ` Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 08/17] RDMA/efa: Use ib_umem_get_cq_buf() for user CQ buffer Jiri Pirko
2026-05-06 13:51   ` Jason Gunthorpe
2026-05-06 14:32     ` Jiri Pirko
2026-05-12 18:18       ` Jason Gunthorpe
2026-05-04 13:57 ` [PATCH rdma-next v3 09/17] RDMA/mlx5: Use ib_umem_get_cq_buf_or_va() " Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 10/17] RDMA/bnxt_re: " Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 11/17] RDMA/mlx4: Use ib_umem_get_cq_buf() " Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 12/17] RDMA/uverbs: Remove legacy umem field from struct ib_cq Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 13/17] RDMA/uverbs: Use UMEM attributes for QP creation Jiri Pirko
2026-05-06 13:43   ` Jason Gunthorpe
2026-05-06 14:17     ` Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 14/17] RDMA/mlx5: Use UMEM attributes for QP buffers in create_qp Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 15/17] RDMA/mlx5: Use UMEM attribute for CQ doorbell record Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 16/17] RDMA/mlx5: Use UMEM attribute for QP " Jiri Pirko
2026-05-04 13:57 ` [PATCH rdma-next v3 17/17] RDMA/uverbs: Track attr consumption and warn on unused attrs Jiri Pirko
2026-05-06 13:56   ` Jason Gunthorpe
2026-05-06 14:22     ` Jiri Pirko

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=agTNeYSOyMTbUbNt@FV6GYCPJ69 \
    --to=jiri@resnulli.us \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=edwards@nvidia.com \
    --cc=gal.pressman@linux.dev \
    --cc=huangjunxian6@hisilicon.com \
    --cc=jgg@ziepe.ca \
    --cc=kalesh-anakkur.purayil@broadcom.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=lirongqing@baidu.com \
    --cc=marco.crivellari@suse.com \
    --cc=mbloch@nvidia.com \
    --cc=michaelgur@nvidia.com \
    --cc=mrgolin@amazon.com \
    --cc=ohartoov@nvidia.com \
    --cc=parav@nvidia.com \
    --cc=phaddad@nvidia.com \
    --cc=roman.gushchin@linux.dev \
    --cc=selvin.xavier@broadcom.com \
    --cc=shayd@nvidia.com \
    --cc=sleybo@amazon.com \
    --cc=sriharsha.basavapatna@broadcom.com \
    --cc=yanjun.zhu@linux.dev \
    --cc=ynachum@amazon.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.