From: Sergey Senozhatsky <senozhatsky@chromium.org>
To: Joanne Koong <joannelkoong@gmail.com>
Cc: Bernd Schubert <bernd.schubert@fastmail.fm>,
Tomasz Figa <tfiga@chromium.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Bernd Schubert <bschubert@ddn.com>,
"miklos@szeredi.hu" <miklos@szeredi.hu>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"josef@toxicpanda.com" <josef@toxicpanda.com>,
"jefflexu@linux.alibaba.com" <jefflexu@linux.alibaba.com>,
"laoar.shao@gmail.com" <laoar.shao@gmail.com>,
"kernel-team@meta.com" <kernel-team@meta.com>
Subject: Re: [PATCH RESEND v9 2/3] fuse: add optional kernel-enforced timeout for requests
Date: Tue, 3 Dec 2024 13:31:18 +0900 [thread overview]
Message-ID: <20241203043118.GC886051@google.com> (raw)
In-Reply-To: <CAJnrk1b3n7z3wfbZzUB_zVi3PTfjbZFbiUTfFMfAu61-t-W7Ug@mail.gmail.com>
On (24/12/02 11:29), Joanne Koong wrote:
> > >> In those cases 1 minute fuse timeout will overshot HUNG_TASK_TIMEOUT
> > >> and then the question is whether HUNG_TASK_PANIC is set.
> > >>
> > >> On the other hand, setups that set much lower timeout than
> > >> DEFAULT_HUNG_TASK_TIMEOUT=120 will have extra CPU activities regardless,
> > >> just because watchdogs will run more often.
> > >>
> > >> Tomasz, any opinions?
> > >
> > > First of all, thanks everyone for looking into this.
>
> Hi Sergey and Tomasz,
>
> Sorry for the late reply - I was out the last couple of days. Thanks
> Bernd for weighing in and answering the questions!
>
> > >
> > > How about keeping a list of requests in the FIFO order (in other
> > > words: first entry is the first to timeout) and whenever the first
> > > entry is being removed from the list (aka the request actually
> > > completes), re-arming the timer to the timeout of the next request in
> > > the list? This way we don't really have any timer firing unless there
> > > is really a request that timed out.
>
> I think the issue with this is that we likely would end up wasting
> more cpu cycles. For a busy FUSE server, there could be hundreds
> (thousands?) of requests that happen within the span of
> FUSE_TIMEOUT_TIMER_FREQ seconds.
So, a silly question - can we not do that maybe?
What I'm thinking about is what if instead of implementing fuse-watchdog
and tracking jiffies per request we'd switch to timeout aware operations
and use what's already in the kernel? E.g. instead of wait_event() we'd
use wait_event_timeout() and would configure timeout per connection
(also bringing in current hung-task-watchdog timeout value into the
equation), using MAX_SCHEDULE_TIMEOUT as a default (similarly to what
core kernel does). The first req that timeouts kills its siblings and
the connection.
next prev parent reply other threads:[~2024-12-03 4:31 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 19:13 [PATCH RESEND v9 0/3] fuse: add kernel-enforced request timeout option Joanne Koong
2024-11-14 19:13 ` [PATCH RESEND v9 1/3] fs_parser: add fsparam_u16 helper Joanne Koong
2024-11-14 19:13 ` [PATCH RESEND v9 2/3] fuse: add optional kernel-enforced timeout for requests Joanne Koong
2024-11-28 10:44 ` Sergey Senozhatsky
2024-11-28 11:00 ` Bernd Schubert
2024-11-28 11:09 ` Sergey Senozhatsky
2024-11-28 11:23 ` Bernd Schubert
2024-11-28 11:54 ` Sergey Senozhatsky
2024-12-02 9:45 ` Tomasz Figa
2024-12-02 14:43 ` Bernd Schubert
2024-12-02 19:29 ` Joanne Koong
2024-12-03 4:31 ` Sergey Senozhatsky [this message]
2024-12-03 5:11 ` Joanne Koong
2024-12-04 14:40 ` Tomasz Figa
2024-12-04 14:51 ` Brian Geffon
2024-12-04 15:09 ` Bernd Schubert
2024-12-05 3:23 ` Sergey Senozhatsky
2024-12-05 11:07 ` Brian Geffon
2024-12-03 11:01 ` Sergey Senozhatsky
2024-12-06 0:06 ` Joanne Koong
2024-12-06 4:28 ` Sergey Senozhatsky
2024-12-04 13:14 ` Sergey Senozhatsky
2024-12-05 23:10 ` Joanne Koong
2024-12-04 13:47 ` Sergey Senozhatsky
2024-12-05 23:29 ` Joanne Koong
2024-12-06 3:26 ` Sergey Senozhatsky
2024-12-06 0:37 ` Jeff Layton
2024-12-06 19:19 ` Joanne Koong
2024-12-06 20:06 ` Jeff Layton
2024-12-06 16:30 ` Etienne Martineau
2024-12-06 19:05 ` Joanne Koong
2024-12-06 19:56 ` Etienne
2024-12-06 21:52 ` Joanne Koong
2024-12-06 20:12 ` Jeff Layton
2024-12-06 21:54 ` Joanne Koong
2024-11-14 19:13 ` [PATCH RESEND v9 3/3] fuse: add default_request_timeout and max_request_timeout sysctls Joanne Koong
2024-12-06 0:43 ` Jeff Layton
2024-12-06 18:16 ` Joanne Koong
2024-11-21 22:02 ` [PATCH RESEND v9 0/3] fuse: add kernel-enforced request timeout option Josef Bacik
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=20241203043118.GC886051@google.com \
--to=senozhatsky@chromium.org \
--cc=bernd.schubert@fastmail.fm \
--cc=bschubert@ddn.com \
--cc=jefflexu@linux.alibaba.com \
--cc=joannelkoong@gmail.com \
--cc=josef@toxicpanda.com \
--cc=kernel-team@meta.com \
--cc=laoar.shao@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=tfiga@chromium.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