Messages in this thread | | | Date | Tue, 28 Nov 2023 10:13:10 +0800 | Subject | Re: [PATCH] f2fs: show more discard stat by sysfs | From | Chao Yu <> |
| |
On 2023/11/24 9:08, Zhiguo Niu wrote: > The current pending_discard attr just only shows the discard_cmd_cnt > information, which is not very meaningful. More discard information > can be shown so that we can check them through sysfs when needed.
What about adding this entry to /sys/fs/f2fs/<dev>/stat/?
> > Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com> > --- > fs/f2fs/sysfs.c | 21 +++++++++++++++------ > 1 file changed, 15 insertions(+), 6 deletions(-) > > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c > index 417fae96..f98e680 100644 > --- a/fs/f2fs/sysfs.c > +++ b/fs/f2fs/sysfs.c > @@ -134,13 +134,22 @@ static ssize_t cp_status_show(struct f2fs_attr *a, > return sysfs_emit(buf, "%x\n", le32_to_cpu(F2FS_CKPT(sbi)->ckpt_flags)); > } > > -static ssize_t pending_discard_show(struct f2fs_attr *a, > +static ssize_t discard_stat_show(struct f2fs_attr *a, > struct f2fs_sb_info *sbi, char *buf) > { > - if (!SM_I(sbi)->dcc_info) > + struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; > + > + if (!dcc) > return -EINVAL; > - return sysfs_emit(buf, "%llu\n", (unsigned long long)atomic_read( > - &SM_I(sbi)->dcc_info->discard_cmd_cnt));
It's better to keep the old one for any potential user.
> + > + return sysfs_emit(buf, "%llu, %llu, %llu, %u\n", > + (unsigned long long)atomic_read( > + &dcc->discard_cmd_cnt), > + (unsigned long long)atomic_read( > + &dcc->issued_discard), > + (unsigned long long)atomic_read( > + &dcc->queued_discard), > + dcc->undiscard_blks); > } > > static ssize_t gc_mode_show(struct f2fs_attr *a, > @@ -1016,7 +1025,7 @@ static ssize_t f2fs_sb_feature_show(struct f2fs_attr *a, > F2FS_GENERAL_RO_ATTR(encoding); > F2FS_GENERAL_RO_ATTR(mounted_time_sec); > F2FS_GENERAL_RO_ATTR(main_blkaddr); > -F2FS_GENERAL_RO_ATTR(pending_discard); > +F2FS_GENERAL_RO_ATTR(discard_stat);
It needs to adjust Documentation/ABI/testing/sysfs-fs-f2fs.
Thanks,
> F2FS_GENERAL_RO_ATTR(gc_mode); > #ifdef CONFIG_F2FS_STAT_FS > F2FS_GENERAL_RO_ATTR(moved_blocks_background); > @@ -1074,7 +1083,7 @@ static ssize_t f2fs_sb_feature_show(struct f2fs_attr *a, > ATTR_LIST(discard_urgent_util), > ATTR_LIST(discard_granularity), > ATTR_LIST(max_ordered_discard), > - ATTR_LIST(pending_discard), > + ATTR_LIST(discard_stat), > ATTR_LIST(gc_mode), > ATTR_LIST(ipu_policy), > ATTR_LIST(min_ipu_util),
| |