Re: [PATCH] f2fs: Introduce lifetime write IO statistics

From: Shuoran
Date: Sun Feb 21 2016 - 20:13:42 EST


Hi Pavel,

On 2016/2/21 1:08, Pavel Machek wrote:
Hi!

From: Shuoran Liu <liushuoran@xxxxxxxxxx>

Signed-off-by: Shuoran Liu <liushuoran@xxxxxxxxxx>
Signed-off-by: Pengyang Hou <houpengyang@xxxxxxxxxx>
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -921,6 +921,10 @@ static int do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
int cp_payload_blks = __cp_payload(sbi);
block_t discard_blk = NEXT_FREE_BLKADDR(sbi, curseg);
bool invalidate = false;
+ struct super_block *sb = sbi->sb;
+ struct curseg_info *seg_i = CURSEG_I(sbi, CURSEG_HOT_NODE);
+ __u64 kbytes_written;
+
No need to __prefix in kernel.

There is a v2 version of the patch according to the suggestions of Kim and Chao Yu, and is merged into the "dev" branch.

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
index e59c3be..05ae034 100644
--- a/include/linux/f2fs_fs.h
+++ b/include/linux/f2fs_fs.h
@@ -387,6 +387,11 @@ struct sit_journal {
__u8 reserved[SIT_JOURNAL_RESERVED];
} __packed;
+struct f2fs_extra_info {
+ __le64 kbytes_written;
+ __u8 reserved[SUM_JOURNAL_SIZE - 10];
+} __packed;
+
Unless this is exported to userspace, no need for __ here, either.

(Would it make sense to store bytes_written, as it is not going to
overflow, anyway?)

Is this going to be exported to userspace somehow?

This stat is exposed to the sysfs interface. Since Ext4 is using kbytes named "lifetime_kbytes_written", we tend to maintain compatibility in case some upper level applications are using it. Besides, the information is obtained from block layer in the unit of "sectors"(512 bytes). So it is not necessary to use bytes.

Pavel

Regards,
Shuoran