* [PATCH] btrfs: Implement warning for commit values exceeding 300 @ 2025-04-28 4:46 sawara04.o 2025-04-28 5:36 ` Qu Wenruo 0 siblings, 1 reply; 6+ messages in thread From: sawara04.o @ 2025-04-28 4:46 UTC (permalink / raw) To: clm, josef, dsterba; +Cc: Kyoji Ogasawara, linux-btrfs 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.", + ctx->commit_interval, + BTRFS_WARNING_COMMIT_INTERVAL); + } if (ctx->commit_interval == 0) ctx->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL; break; -- 2.47.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] btrfs: Implement warning for commit values exceeding 300 2025-04-28 4:46 [PATCH] btrfs: Implement warning for commit values exceeding 300 sawara04.o @ 2025-04-28 5:36 ` Qu Wenruo 2025-04-28 15:12 ` David Sterba 0 siblings, 1 reply; 6+ messages in thread From: Qu Wenruo @ 2025-04-28 5:36 UTC (permalink / raw) To: sawara04.o, clm, josef, dsterba; +Cc: linux-btrfs 在 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; ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] btrfs: Implement warning for commit values exceeding 300 2025-04-28 5:36 ` Qu Wenruo @ 2025-04-28 15:12 ` David Sterba [not found] ` <CAKNDObASvhXH3F4jRBHQ2EA6CN+-L-qgg92D2GKAorMu2g9Aig@mail.gmail.com> 0 siblings, 1 reply; 6+ messages in thread From: David Sterba @ 2025-04-28 15:12 UTC (permalink / raw) To: Qu Wenruo; +Cc: sawara04.o, clm, josef, dsterba, linux-btrfs On Mon, Apr 28, 2025 at 03:06:14PM +0930, Qu Wenruo wrote: > 在 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"? We used to have the warning there before the 6.8 mount option parser rewrite and it got removed in 6941823cc87812 ("btrfs: remove old mount API code") without being properly implemented in the new API. The wording of the message was not alarming or scarying, "excessive commit interval %u". The consequences of the large interval could be data loss but this may not be suitable for the error message as this is a corner case. I agree that 'use with care' (and read documentation) would be reasonable. Regarding nobarrier, there's a message "turning off barriers" printed in btrfs_emit_options(), we can possibly enhance that too. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <CAKNDObASvhXH3F4jRBHQ2EA6CN+-L-qgg92D2GKAorMu2g9Aig@mail.gmail.com>]
* Re: [PATCH] btrfs: Implement warning for commit values exceeding 300 [not found] ` <CAKNDObASvhXH3F4jRBHQ2EA6CN+-L-qgg92D2GKAorMu2g9Aig@mail.gmail.com> @ 2025-04-28 22:19 ` Qu Wenruo 2025-04-30 15:33 ` 小笠原 共志 0 siblings, 1 reply; 6+ messages in thread From: Qu Wenruo @ 2025-04-28 22:19 UTC (permalink / raw) To: 小笠原 共志, dsterba Cc: clm, josef, dsterba, linux-btrfs 在 2025/4/29 07:45, 小笠原 共志 写道: > Thank you very much for your review and the helpful feedback. > > I will revise the patch according to your suggestions, replacing the > warning message with something less alarming such as "Use with care." > > Additionally, would it be okay if I also update the "nobarrier" message > to make it more informative? Sure, that sounds good to me. Thanks, Qu > > 2025年4月29日(火) 0:13 David Sterba <dsterba@suse.cz > <mailto:dsterba@suse.cz>>: > > On Mon, Apr 28, 2025 at 03:06:14PM +0930, Qu Wenruo wrote: > > 在 2025/4/28 14:16, sawara04.o@gmail.com > <mailto:sawara04.o@gmail.com> 写道: > > > From: Kyoji Ogasawara <sawara04.o@gmail.com > <mailto: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 <https:// > btrfs.readthedocs.io/en/latest/Administration.html#btrfs-specific- > mount-options> > > > > > > Signed-off-by: Kyoji Ogasawara <sawara04.o@gmail.com > <mailto: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"? > > We used to have the warning there before the 6.8 mount option parser > rewrite and it got removed in 6941823cc87812 ("btrfs: remove old mount > API code") without being properly implemented in the new API. > > The wording of the message was not alarming or scarying, > "excessive commit interval %u". The consequences of the large interval > could be data loss but this may not be suitable for the error message as > this is a corner case. I agree that 'use with care' (and read > documentation) would be reasonable. > > Regarding nobarrier, there's a message "turning off barriers" printed in > btrfs_emit_options(), we can possibly enhance that too. > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] btrfs: Implement warning for commit values exceeding 300 2025-04-28 22:19 ` Qu Wenruo @ 2025-04-30 15:33 ` 小笠原 共志 2025-04-30 16:40 ` David Sterba 0 siblings, 1 reply; 6+ messages in thread From: 小笠原 共志 @ 2025-04-30 15:33 UTC (permalink / raw) To: Qu Wenruo; +Cc: dsterba, clm, josef, dsterba, linux-btrfs > Sure, that sounds good to me. Thank you. I would like to confirm whether the warning message "excessive commit interval %u, use with care" is acceptable. Please let me know if you have any concerns or suggestions for improvement. 2025年4月29日(火) 7:19 Qu Wenruo <quwenruo.btrfs@gmx.com>: > > > > 在 2025/4/29 07:45, 小笠原 共志 写道: > > Thank you very much for your review and the helpful feedback. > > > > I will revise the patch according to your suggestions, replacing the > > warning message with something less alarming such as "Use with care." > > > > Additionally, would it be okay if I also update the "nobarrier" message > > to make it more informative? > > Sure, that sounds good to me. > > Thanks, > Qu > > > > > 2025年4月29日(火) 0:13 David Sterba <dsterba@suse.cz > > <mailto:dsterba@suse.cz>>: > > > > On Mon, Apr 28, 2025 at 03:06:14PM +0930, Qu Wenruo wrote: > > > 在 2025/4/28 14:16, sawara04.o@gmail.com > > <mailto:sawara04.o@gmail.com> 写道: > > > > From: Kyoji Ogasawara <sawara04.o@gmail.com > > <mailto: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 <https:// > > btrfs.readthedocs.io/en/latest/Administration.html#btrfs-specific- > > mount-options> > > > > > > > > Signed-off-by: Kyoji Ogasawara <sawara04.o@gmail.com > > <mailto: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"? > > > > We used to have the warning there before the 6.8 mount option parser > > rewrite and it got removed in 6941823cc87812 ("btrfs: remove old mount > > API code") without being properly implemented in the new API. > > > > The wording of the message was not alarming or scarying, > > "excessive commit interval %u". The consequences of the large interval > > could be data loss but this may not be suitable for the error message as > > this is a corner case. I agree that 'use with care' (and read > > documentation) would be reasonable. > > > > Regarding nobarrier, there's a message "turning off barriers" printed in > > btrfs_emit_options(), we can possibly enhance that too. > > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] btrfs: Implement warning for commit values exceeding 300 2025-04-30 15:33 ` 小笠原 共志 @ 2025-04-30 16:40 ` David Sterba 0 siblings, 0 replies; 6+ messages in thread From: David Sterba @ 2025-04-30 16:40 UTC (permalink / raw) To: 小笠原 共志 Cc: Qu Wenruo, dsterba, clm, josef, dsterba, linux-btrfs On Thu, May 01, 2025 at 12:33:32AM +0900, 小笠原 共志 wrote: > > Sure, that sounds good to me. > > Thank you. > > I would like to confirm whether the warning message > "excessive commit interval %u, use with care" is acceptable. > Please let me know if you have any concerns or suggestions > for improvement. Yes, this is OK, thanks. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-04-30 16:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-28 4:46 [PATCH] btrfs: Implement warning for commit values exceeding 300 sawara04.o
2025-04-28 5:36 ` Qu Wenruo
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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox