Re: [PATCH v5 0/7] fuse: {io-uring} Allow to reduce the number of queues and request distribution
David Wei <[email protected]>
| Newsgroups | dev.linux.lists.fuse-devel |
|---|---|
| Message-ID | <[email protected]> |
On 2026-05-28 15:55, Bernd Schubert via B4 Relay wrote: > This adds bitmaps that track which queues are registered and which queues > do not have queued requests. > These bitmaps are then used to map from request core to queue > and also allow load distribution. NUMA affinity is handled and > fuse client/server protocol does not need changes, all is handled > in fuse client internally. > > Signed-off-by: Bernd Schubert <[email protected]> > --- > Changes in v5 > - Rebased to miklos-for-next (Linux 7.2 base). > - Folded "Fetch a queued fuse request on command registration" into > "Allow reduced number of ring queues", inlining fuse_uring_do_register() > into fuse_uring_register(). > - Fixed retry logic in "Add retry attempts for numa local queues": > replaced cpu++ with cpumask_next_wrap(qid, mask) so each retry > advances to a genuinely different registered queue (Joanne)- > - Simplified "Prefer the current core over mapping" (Joanne). > - Folded READ_ONCE() annotation for ring->ready into "Allow reduced > number of ring queues" to match WRITE_ONCE() on the writer side and > suppress a KCSAN data-race warning. > > Changes in v4: > - Fix leak of ring->numa_q_map > - Fix q-imbalance due to an issue in static cpu->qid mapping > - Performance tunings, like preferring the current cpu > - Removal of distribution among queues, Joanne had concerns about it. > As it is an optimization, it can be added later again. At least > most of it was removed, some light distribution is still left in. > - At the end of the series, add fuse debugfs entries. This could > be factored out. > - Link to v3: https://lore.kernel.org/r/[email protected] > > --- > Bernd Schubert (7): > fuse: {io-uring} Add queue length counters > fuse: {io-uring} Rename ring->nr_queues to max_nr_queues > fuse: {io-uring} Use bitmaps to track registered queues > fuse: {io-uring} Allow reduced number of ring queues > fuse: {io-uring} Queue background requests on a different core > fuse: {io-uring} Add retry attempts for numa local queues for load distribution > fuse: {io-uring} Prefer the current core over mapping > > fs/fuse/dev_uring.c | 313 ++++++++++++++++++++++++++++++++++------------ > fs/fuse/dev_uring_i.h | 25 +++- > fs/fuse/inode.c | 2 +- > include/uapi/linux/fuse.h | 10 +- > 4 files changed, 269 insertions(+), 81 deletions(-) > --- > base-commit: 2dcf16d41cc04472a4f9bc6e99d0ab26cfb1afb1 > change-id: 20250722-reduced-nr-ring-queues_3-6acb79dad978 > > Best regards, Hi Bernd, What is the current status of this patchset? Do you intend to keep it as is, or as Joanne mentioned combine it with queue add/remove? We're running FUSE io_uring on fairly large hosts with >150 physical cores. FUSE io_uring ends up creating 300+ io_uring instances, which wastes memory and bumps against rlimit memlock. Thanks, David