Re: [PATCH v12 2/2] fuse: add default_request_timeout and max_request_timeout sysctls

Bernd Schubert
2025-01-23T17:19:05Z

Hi Joanne,

>>> Thanks, applied and pushed with some cleanups including Luis's clamp idea.
>>
>> Hi Miklos,
>>
>> I don't think the timeouts do work with io-uring yet, I'm not sure
>> yet if I have time to work on that today or tomorrow (on something
>> else right now, I can try, but no promises).
>
> Hi Bernd,
>
> What are your thoughts on what is missing on the io-uring side for
> timeouts? If a request times out, it will abort the connection and
> AFAICT, the abort logic should already be fine for io-uring, as users
> can currently abort the connection through the sysfs interface and
> there's no internal difference in aborting through sysfs vs timeouts.
>

in fuse_check_timeout() it iterates over each fud and then fpq.
In dev_uring.c fpq is is per queue but unrelated to fud. In current
fuse-io-uring fud is not cloned anymore - using fud won't work.
And Requests are also not queued at all on the other list
fuse_check_timeout() is currently checking.

Also, with a ring per core, maybe better to use
a per queue check that is core bound? I.e. zero locking overhead?
And I think we can also avoid iterating over hash lists (queue->fpq),
but can use the 'ent_in_userspace' list.

We need to iterate over these other entry queues anyway:

ent_w_req_queue
fuse_req_bg_queue
ent_commit_queue

And we also need to iterate over

fuse_req_queue
fuse_req_bg_queue

Thanks,
Bernd