From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: sawara04.o@gmail.com, clm@fb.com, josef@toxicpanda.com, dsterba@suse.com
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] btrfs: Implement warning for commit values exceeding 300
Date: Mon, 28 Apr 2025 15:06:14 +0930 [thread overview]
Message-ID: <a95364ca-7903-4cbf-9f75-417fc0d26bbc@gmx.com> (raw)
In-Reply-To: <20250428044626.2371987-1-sawara04.o@gmail.com>
在 2025/4/28 14:16, sawara04.o@gmail.com 写道:
> From: Kyoji Ogasawara <sawara04.o@gmail.com>
>
> The Btrfs documentation states that if the commit value is greater than 300
> a warning should be issued. This commit implements that functionality.
> For more details, visit:
> https://btrfs.readthedocs.io/en/latest/Administration.html#btrfs-specific-mount-options
>
> Signed-off-by: Kyoji Ogasawara <sawara04.o@gmail.com>
> ---
> fs/btrfs/fs.h | 1 +
> fs/btrfs/super.c | 6 ++++++
> 2 files changed, 7 insertions(+)
>
> diff --git a/fs/btrfs/fs.h b/fs/btrfs/fs.h
> index b572d6b9730b..f46fba127caa 100644
> --- a/fs/btrfs/fs.h
> +++ b/fs/btrfs/fs.h
> @@ -285,6 +285,7 @@ enum {
> #define BTRFS_FEATURE_INCOMPAT_SAFE_CLEAR 0ULL
>
> #define BTRFS_DEFAULT_COMMIT_INTERVAL (30)
> +#define BTRFS_WARNING_COMMIT_INTERVAL (300)
> #define BTRFS_DEFAULT_MAX_INLINE (2048)
>
> struct btrfs_dev_replace {
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index dc4fee519ca6..c6911e9f17f2 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -569,6 +569,12 @@ static int btrfs_parse_param(struct fs_context *fc, struct fs_parameter *param)
> break;
> case Opt_commit_interval:
> ctx->commit_interval = result.uint_32;
> + if (ctx->commit_interval > BTRFS_WARNING_COMMIT_INTERVAL) {
> + btrfs_warn(NULL,
> +"commit=%u is considerably high (> %u). Large amount of data can be lost when the system crashes.",
I'd say the large commit value is not really going to cause a lot of
data on crash.
It's really depending on the workload, e.g. if there no fs activity at
all for over 300s, there will be no data loss at all.
Furthermore, we do not really to scare users to use a super low value,
which will cause tons of unnecessary transactions and fragments the
filesystem with too many small extents (if data cow is enabled).
Another thing is, we do not even warn about more dangerous mount
options, like nobarrier, thus I'm not sure if we really want such a warning.
At least I'd prefer a less scary warning, maybe just "Use with care"?
Thanks,
Qu
> + ctx->commit_interval,
> + BTRFS_WARNING_COMMIT_INTERVAL);
> + }
> if (ctx->commit_interval == 0)
> ctx->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL;
> break;
next prev parent reply other threads:[~2025-04-28 5:36 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-28 4:46 [PATCH] btrfs: Implement warning for commit values exceeding 300 sawara04.o
2025-04-28 5:36 ` Qu Wenruo [this message]
2025-04-28 15:12 ` David Sterba
[not found] ` <CAKNDObASvhXH3F4jRBHQ2EA6CN+-L-qgg92D2GKAorMu2g9Aig@mail.gmail.com>
2025-04-28 22:19 ` Qu Wenruo
2025-04-30 15:33 ` 小笠原 共志
2025-04-30 16:40 ` David Sterba
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=a95364ca-7903-4cbf-9f75-417fc0d26bbc@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=josef@toxicpanda.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=sawara04.o@gmail.com \
/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