Message ID | 20230330173127.46900-1-frank.li@vivo.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [f2fs-dev] f2fs: support to show noage_extent_cache mount option | expand |
On 03/31, Yangtao Li wrote: > This patch support noage_extent_cache mount option. > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > Documentation/filesystems/f2fs.rst | 2 ++ > fs/f2fs/super.c | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/Documentation/filesystems/f2fs.rst b/Documentation/filesystems/f2fs.rst > index a81c896464ff..75505ab88de8 100644 > --- a/Documentation/filesystems/f2fs.rst > +++ b/Documentation/filesystems/f2fs.rst > @@ -352,6 +352,8 @@ age_extent_cache Enable an age extent cache based on rb-tree. It records > data block update frequency of the extent per inode, in > order to provide better temperature hints for data block > allocation. > +noage_extent_cache Disable an age extent cache based on rb-tree, see > + the above age_extent_cache mount option. Hmm, why do we need? > ======================== ============================================================ > > Debugfs Entries > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > index b5828a67f7c1..8bd9953ea7e3 100644 > --- a/fs/f2fs/super.c > +++ b/fs/f2fs/super.c > @@ -165,6 +165,7 @@ enum { > Opt_discard_unit, > Opt_memory_mode, > Opt_age_extent_cache, > + Opt_noage_extent_cache, > Opt_err, > }; > > @@ -244,6 +245,7 @@ static match_table_t f2fs_tokens = { > {Opt_discard_unit, "discard_unit=%s"}, > {Opt_memory_mode, "memory=%s"}, > {Opt_age_extent_cache, "age_extent_cache"}, > + {Opt_noage_extent_cache, "noage_extent_cache"}, > {Opt_err, NULL}, > }; > > @@ -1269,6 +1271,9 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount) > case Opt_age_extent_cache: > set_opt(sbi, AGE_EXTENT_CACHE); > break; > + case Opt_noage_extent_cache: > + clear_opt(sbi, AGE_EXTENT_CACHE); > + break; > default: > f2fs_err(sbi, "Unrecognized mount option \"%s\" or missing value", > p); > @@ -1974,6 +1979,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root) > seq_puts(seq, ",noextent_cache"); > if (test_opt(sbi, AGE_EXTENT_CACHE)) > seq_puts(seq, ",age_extent_cache"); > + else > + seq_puts(seq, ",noage_extent_cache"); > if (test_opt(sbi, DATA_FLUSH)) > seq_puts(seq, ",data_flush"); > > -- > 2.35.1
On 2023/4/4 1:40, Jaegeuk Kim wrote: > On 03/31, Yangtao Li wrote: >> This patch support noage_extent_cache mount option. >> >> Signed-off-by: Yangtao Li <frank.li@vivo.com> >> --- >> Documentation/filesystems/f2fs.rst | 2 ++ >> fs/f2fs/super.c | 7 +++++++ >> 2 files changed, 9 insertions(+) >> >> diff --git a/Documentation/filesystems/f2fs.rst b/Documentation/filesystems/f2fs.rst >> index a81c896464ff..75505ab88de8 100644 >> --- a/Documentation/filesystems/f2fs.rst >> +++ b/Documentation/filesystems/f2fs.rst >> @@ -352,6 +352,8 @@ age_extent_cache Enable an age extent cache based on rb-tree. It records >> data block update frequency of the extent per inode, in >> order to provide better temperature hints for data block >> allocation. >> +noage_extent_cache Disable an age extent cache based on rb-tree, see >> + the above age_extent_cache mount option. > > Hmm, why do we need? Hi Yangtao, Please check the reason why we need to add no{inline_data, extent_cache, ...} mount option as below: commit 75342797988a0f9ebec400a2dde8d4de581c4079 Author: Wanpeng Li <wanpeng.li@linux.intel.com> Date: Tue Mar 24 10:20:27 2015 +0800 f2fs: enable inline data by default Enable inline_data feature by default since it brings us better performance and space utilization and now has already stable. Add another option noinline_data to disable it during mount. Thanks, > >> ======================== ============================================================ >> >> Debugfs Entries >> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c >> index b5828a67f7c1..8bd9953ea7e3 100644 >> --- a/fs/f2fs/super.c >> +++ b/fs/f2fs/super.c >> @@ -165,6 +165,7 @@ enum { >> Opt_discard_unit, >> Opt_memory_mode, >> Opt_age_extent_cache, >> + Opt_noage_extent_cache, >> Opt_err, >> }; >> >> @@ -244,6 +245,7 @@ static match_table_t f2fs_tokens = { >> {Opt_discard_unit, "discard_unit=%s"}, >> {Opt_memory_mode, "memory=%s"}, >> {Opt_age_extent_cache, "age_extent_cache"}, >> + {Opt_noage_extent_cache, "noage_extent_cache"}, >> {Opt_err, NULL}, >> }; >> >> @@ -1269,6 +1271,9 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount) >> case Opt_age_extent_cache: >> set_opt(sbi, AGE_EXTENT_CACHE); >> break; >> + case Opt_noage_extent_cache: >> + clear_opt(sbi, AGE_EXTENT_CACHE); >> + break; >> default: >> f2fs_err(sbi, "Unrecognized mount option \"%s\" or missing value", >> p); >> @@ -1974,6 +1979,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root) >> seq_puts(seq, ",noextent_cache"); >> if (test_opt(sbi, AGE_EXTENT_CACHE)) >> seq_puts(seq, ",age_extent_cache"); >> + else >> + seq_puts(seq, ",noage_extent_cache"); >> if (test_opt(sbi, DATA_FLUSH)) >> seq_puts(seq, ",data_flush"); >> >> -- >> 2.35.1
diff --git a/Documentation/filesystems/f2fs.rst b/Documentation/filesystems/f2fs.rst index a81c896464ff..75505ab88de8 100644 --- a/Documentation/filesystems/f2fs.rst +++ b/Documentation/filesystems/f2fs.rst @@ -352,6 +352,8 @@ age_extent_cache Enable an age extent cache based on rb-tree. It records data block update frequency of the extent per inode, in order to provide better temperature hints for data block allocation. +noage_extent_cache Disable an age extent cache based on rb-tree, see + the above age_extent_cache mount option. ======================== ============================================================ Debugfs Entries diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index b5828a67f7c1..8bd9953ea7e3 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -165,6 +165,7 @@ enum { Opt_discard_unit, Opt_memory_mode, Opt_age_extent_cache, + Opt_noage_extent_cache, Opt_err, }; @@ -244,6 +245,7 @@ static match_table_t f2fs_tokens = { {Opt_discard_unit, "discard_unit=%s"}, {Opt_memory_mode, "memory=%s"}, {Opt_age_extent_cache, "age_extent_cache"}, + {Opt_noage_extent_cache, "noage_extent_cache"}, {Opt_err, NULL}, }; @@ -1269,6 +1271,9 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount) case Opt_age_extent_cache: set_opt(sbi, AGE_EXTENT_CACHE); break; + case Opt_noage_extent_cache: + clear_opt(sbi, AGE_EXTENT_CACHE); + break; default: f2fs_err(sbi, "Unrecognized mount option \"%s\" or missing value", p); @@ -1974,6 +1979,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root) seq_puts(seq, ",noextent_cache"); if (test_opt(sbi, AGE_EXTENT_CACHE)) seq_puts(seq, ",age_extent_cache"); + else + seq_puts(seq, ",noage_extent_cache"); if (test_opt(sbi, DATA_FLUSH)) seq_puts(seq, ",data_flush");
This patch support noage_extent_cache mount option. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- Documentation/filesystems/f2fs.rst | 2 ++ fs/f2fs/super.c | 7 +++++++ 2 files changed, 9 insertions(+)