Re: [PATCH] f2fs: fix iostat parameter for discard

From: Jaegeuk Kim
Date: Mon Dec 12 2022 - 17:59:17 EST


On 12/11, Chao Yu wrote:
> On 2022/12/5 22:56, Yangtao Li wrote:
> > Just like other data we count uses the number of bytes as the basic unit,
> > but discard uses the number of cmds as the statistical unit. In fact the
> > discard command contains the number of blocks, so let's change to the
> > number of bytes as the base unit.
> >
> > Fixes: b0af6d491a6b ("f2fs: add app/fs io stat")
> >
> > Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
> > ---
> > fs/f2fs/segment.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> > index 9486ca49ecb1..bc262e17b279 100644
> > --- a/fs/f2fs/segment.c
> > +++ b/fs/f2fs/segment.c
> > @@ -1181,7 +1181,7 @@ static int __submit_discard_cmd(struct f2fs_sb_info *sbi,
> > atomic_inc(&dcc->issued_discard);
> > - f2fs_update_iostat(sbi, NULL, FS_DISCARD, 1);
> > + f2fs_update_iostat(sbi, NULL, FS_DISCARD, len * F2FS_BLKSIZE);
>
> In order to avoid breaking its usage of application, how about keeping
> FS_DISCARD as it is, and add FS_DISCARD_IO to account discard bytes?

I picked this to match the f2fs_update_iostat() definition. Do we know
how many applications will be affected? I don't have any at a glance in
Android tho.

void f2fs_update_iostat(struct f2fs_sb_info *sbi, struct inode *inode,
enum iostat_type type, unsigned long long io_bytes)


>
> Thanks,
>
> > lstart += len;
> > start += len;