From: Yafang Shao <laoar.shao@gmail.com>
To: Joanne Koong <joannelkoong@gmail.com>
Cc: miklos@szeredi.hu, linux-fsdevel@vger.kernel.org,
josef@toxicpanda.com, bernd.schubert@fastmail.fm,
jefflexu@linux.alibaba.com, kernel-team@meta.com,
Bernd Schubert <bschubert@ddn.com>
Subject: Re: [PATCH v4 2/2] fuse: add default_request_timeout and max_request_timeout sysctls
Date: Tue, 20 Aug 2024 14:39:34 +0800 [thread overview]
Message-ID: <CALOAHbDt6QiUt4mzMx2DS=16u5dx1tnPBqO2kT4gh_9gBgoq1A@mail.gmail.com> (raw)
In-Reply-To: <20240813232241.2369855-3-joannelkoong@gmail.com>
On Wed, Aug 14, 2024 at 7:24 AM Joanne Koong <joannelkoong@gmail.com> wrote:
>
> Introduce two new sysctls, "default_request_timeout" and
> "max_request_timeout". These control timeouts on replies by the
> server to kernel-issued fuse requests.
>
> "default_request_timeout" sets a timeout if no timeout is specified by
> the fuse server on mount. 0 (default) indicates no timeout should be enforced.
>
> "max_request_timeout" sets a maximum timeout for fuse requests. If the
> fuse server attempts to set a timeout greater than max_request_timeout,
> the system will default to max_request_timeout. Similarly, if the max
> default timeout is greater than the max request timeout, the system will
> default to the max request timeout. 0 (default) indicates no timeout should
> be enforced.
>
> $ sysctl -a | grep fuse
> fs.fuse.default_request_timeout = 0
> fs.fuse.max_request_timeout = 0
>
> $ echo 0x100000000 | sudo tee /proc/sys/fs/fuse/default_request_timeout
> tee: /proc/sys/fs/fuse/default_request_timeout: Invalid argument
>
> $ echo 0xFFFFFFFF | sudo tee /proc/sys/fs/fuse/default_request_timeout
> 0xFFFFFFFF
>
> $ sysctl -a | grep fuse
> fs.fuse.default_request_timeout = 4294967295
> fs.fuse.max_request_timeout = 0
>
> Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
> Reviewed-by: Josef Bacik <josef@toxicpanda.com>
> Reviewed-by: Bernd Schubert <bschubert@ddn.com>
> ---
> Documentation/admin-guide/sysctl/fs.rst | 17 ++++++++++
> fs/fuse/Makefile | 2 +-
> fs/fuse/fuse_i.h | 16 ++++++++++
> fs/fuse/inode.c | 19 ++++++++++-
> fs/fuse/sysctl.c | 42 +++++++++++++++++++++++++
> 5 files changed, 94 insertions(+), 2 deletions(-)
> create mode 100644 fs/fuse/sysctl.c
>
> diff --git a/Documentation/admin-guide/sysctl/fs.rst b/Documentation/admin-guide/sysctl/fs.rst
> index 47499a1742bd..44fd495f69b4 100644
> --- a/Documentation/admin-guide/sysctl/fs.rst
> +++ b/Documentation/admin-guide/sysctl/fs.rst
> @@ -332,3 +332,20 @@ Each "watch" costs roughly 90 bytes on a 32-bit kernel, and roughly 160 bytes
> on a 64-bit one.
> The current default value for ``max_user_watches`` is 4% of the
> available low memory, divided by the "watch" cost in bytes.
> +
> +5. /proc/sys/fs/fuse - Configuration options for FUSE filesystems
> +=====================================================================
> +
> +This directory contains the following configuration options for FUSE
> +filesystems:
> +
> +``/proc/sys/fs/fuse/default_request_timeout`` is a read/write file for
> +setting/getting the default timeout (in seconds) for a fuse server to
> +reply to a kernel-issued request in the event where the server did not
> +specify a timeout at mount. 0 indicates no timeout.
While testing on my servers, I observed that the timeout value appears
to be doubled. For instance, if I set the timeout to 10 seconds, the
"Timer expired" message occurs after 20 seconds.
Is this an expected behavior, or is the doubling unavoidable? I'm okay
with it as long as we have a functioning timeout. However, I recommend
documenting this behavior to avoid any potential confusion for users.
--
Regards
Yafang
next prev parent reply other threads:[~2024-08-20 6:40 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 23:22 [PATCH v4 0/2] fuse: add timeout option for requests Joanne Koong
2024-08-13 23:22 ` [PATCH v4 1/2] fuse: add optional kernel-enforced timeout " Joanne Koong
2024-08-21 7:55 ` Jingbo Xu
2024-08-21 17:38 ` Joanne Koong
2024-08-13 23:22 ` [PATCH v4 2/2] fuse: add default_request_timeout and max_request_timeout sysctls Joanne Koong
2024-08-20 6:39 ` Yafang Shao [this message]
2024-08-20 18:31 ` Joanne Koong
2024-08-21 2:00 ` Yafang Shao
2024-08-22 7:06 ` Jingbo Xu
2024-08-22 21:19 ` Joanne Koong
2024-08-23 2:17 ` Jingbo Xu
2024-08-23 22:54 ` Joanne Koong
2024-08-27 8:12 ` Jingbo Xu
2024-08-27 18:13 ` Joanne Koong
2024-08-28 2:27 ` Jingbo Xu
2024-08-21 2:01 ` [PATCH v4 0/2] fuse: add timeout option for requests Yafang Shao
2024-08-26 20:30 ` Joanne Koong
2024-08-21 13:47 ` Miklos Szeredi
2024-08-21 14:15 ` Bernd Schubert
2024-08-21 14:25 ` Miklos Szeredi
2024-08-21 18:11 ` Josef Bacik
2024-08-21 18:54 ` Miklos Szeredi
2024-08-21 21:22 ` Joanne Koong
2024-08-22 10:52 ` Miklos Szeredi
2024-08-22 17:31 ` Joanne Koong
2024-08-22 17:43 ` Miklos Szeredi
2024-08-22 22:38 ` Joanne Koong
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='CALOAHbDt6QiUt4mzMx2DS=16u5dx1tnPBqO2kT4gh_9gBgoq1A@mail.gmail.com' \
--to=laoar.shao@gmail.com \
--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=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
/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;
as well as URLs for NNTP newsgroup(s).