public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
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.

  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