Re: [PATCH v4 07/10] fuse: add io-uring buffer pools (implemented as buffer ring)

Joanne Koong <[email protected]> Mon, 22 Jun 2026 17:28:04 -0700
Newsgroups dev.linux.lists.fuse-devel
Message-ID <CAJnrk1bDL7PTgDkQH06sR5saqqTRYVOPuZt1oWOoP8ZQRovfQA@mail.gmail.com>
On Fri, Jun 19, 2026 at 12:57 AM Miklos Szeredi <[email protected]> wrote:
>
> On Fri, 19 Jun 2026 at 00:23, Joanne Koong <[email protected]> wrote:
>
> > > Even with separate waiting queues and the kernel prioritizing sending
> > > metadata requests before io, isn't there the issue that if the
> > > requests/entries on the ring are all IO requests and then a storm of
> > > metadata ops come in, they're still backed up waiting for the IO
> > > requests to be finished? Or am I missing something?
> >
> > Thinking about this some more, I think the kernel could just
> > pre-reserve some ring entries specifically for metadata ops / non-IO
> > requests. That solves it on the kernel side but the userspace side
> > would still need a threadpool of some sort if its backend IO blocks
> > its queue thread.
>
> Do "normal" filesystems use different block device queues for metadata
> and data I/O?

No but I think in the block layer (from what I understand), requests
are always serviced asynchronously which avoids the head-of-line
blocking problem, whereas the fuse server can't always issue backing
i/o asynchronously.

I don't think this is ultimately that important though. I'll drop this idea.

Thanks,
Joanne