public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
From: Bernd Schubert <bernd@bsbernd.com>
To: Joanne Koong <joannelkoong@gmail.com>, axboe@kernel.dk
Cc: hch@infradead.org, asml.silence@gmail.com,
	csander@purestorage.com, krisman@suse.de,
	linux-fsdevel@vger.kernel.org, io-uring@vger.kernel.org,
	Horst Birthelmer <hbirthelmer@ddn.com>
Subject: Re: [PATCH v3 0/8] io_uring: add kernel-managed buffer rings
Date: Fri, 20 Mar 2026 18:16:25 +0100	[thread overview]
Message-ID: <59dcb27f-875c-4a2a-82dc-63b832f8eb1e@bsbernd.com> (raw)
In-Reply-To: <20260306003224.3620942-1-joannelkoong@gmail.com>

On 3/6/26 01:32, Joanne Koong wrote:
> Currently, io_uring buffer rings require the application to allocate and
> manage the backing buffers. This series introduces buffer rings where the
> kernel allocates and manages the buffers on behalf of the application. From
> the uapi side, this goes through the pbuf ring interface, through the
> IOU_PBUF_RING_KERNEL_MANAGED flag.
> 
> There was a long discussion with Pavel on v1 [1] regarding the design. The
> alternatives were to have the buffers allocated and registered through a
> memory region or through the registered buffers interface and have fuse
> implement ring buffer logic internally outside of io-uring. However, because
> the buffers need to be contiguous for DMA and some high-performance fuse
> servers may need non-fuse io-uring requests to use the buffer ring directly,
> v3 keeps the design.
> 
> This is split out from the fuse-over-io_uring series in [2], which needs the
> kernel to own and manage buffers shared between the fuse server and the
> kernel. The link to the fuse tree that uses the commits in this series is in
> [3].
> 
> This series is on top of the for-7.1/io_uring branch in Jens' io-uring
> tree (commit ee1d7dc33990). The corresponding liburing changes are in [4] and
> will be submitted after the changes in this patchset have landed.
> 
> Thanks,
> Joanne
> 
> [1] https://lore.kernel.org/linux-fsdevel/20260210002852.1394504-1-joannelkoong@gmail.com/T/#t
> [2] https://lore.kernel.org/linux-fsdevel/20260116233044.1532965-1-joannelkoong@gmail.com/
> [3] https://github.com/joannekoong/linux/commits/fuse_zero_copy_for_v3/
> [4] https://github.com/joannekoong/liburing/commits/pbuf_kernel_managed/

Hi Joanne,

I'm a bit late, but could we have a design discussion about fuse here?
From my point of view it would be good if we could have different
request sizes for the ring buffers. Without kbuf I thought we would just
register entries with different sizes, which would then get sorted into
per size lists. Now with kbuf that will not work anymore and we need
different kbuf sizes. But then kbuf is not suitable for non-privileged
users. So in order to support different request sizes one basically has
to implement things two times - not ideal. Couldn't we have pbuf for
non-privileged users and basically depcrecate the existing fuse io-uring
buffer API? In the sense that it needs to be further supported for some
time, but won't get any new feature. Different buffer sizes would then
only be supported through kbuf/pbuf?


Thanks,
Bernd

  parent reply	other threads:[~2026-03-20 17:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-06  0:32 [PATCH v3 0/8] io_uring: add kernel-managed buffer rings Joanne Koong
2026-03-06  0:32 ` [PATCH v3 1/8] io_uring/kbuf: add support for " Joanne Koong
2026-03-06  0:32 ` [PATCH v3 2/8] io_uring/kbuf: support kernel-managed buffer rings in buffer selection Joanne Koong
2026-03-06  0:32 ` [PATCH v3 3/8] io_uring/kbuf: add buffer ring pinning/unpinning Joanne Koong
2026-03-06  0:32 ` [PATCH v3 4/8] io_uring/kbuf: return buffer id in buffer selection Joanne Koong
2026-03-06  0:32 ` [PATCH v3 5/8] io_uring/kbuf: add recycling for kernel managed buffer rings Joanne Koong
2026-03-06  0:32 ` [PATCH v3 6/8] io_uring/kbuf: add io_uring_is_kmbuf_ring() Joanne Koong
2026-03-06  0:32 ` [PATCH v3 7/8] io_uring/kbuf: export io_ring_buffer_select() Joanne Koong
2026-03-06  0:32 ` [PATCH v3 8/8] io_uring/cmd: set selected buffer index in __io_uring_cmd_done() Joanne Koong
2026-03-20 16:45 ` [PATCH v3 0/8] io_uring: add kernel-managed buffer rings Jens Axboe
2026-03-20 17:16 ` Bernd Schubert [this message]
2026-03-20 19:20   ` Joanne Koong
2026-03-20 19:45     ` Bernd Schubert
2026-03-20 21:58       ` Joanne Koong

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=59dcb27f-875c-4a2a-82dc-63b832f8eb1e@bsbernd.com \
    --to=bernd@bsbernd.com \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=csander@purestorage.com \
    --cc=hbirthelmer@ddn.com \
    --cc=hch@infradead.org \
    --cc=io-uring@vger.kernel.org \
    --cc=joannelkoong@gmail.com \
    --cc=krisman@suse.de \
    --cc=linux-fsdevel@vger.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