* [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat()
@ 2023-01-04 11:21 ` Yangtao Li
0 siblings, 0 replies; 18+ messages in thread
From: Yangtao Li via Linux-f2fs-devel @ 2023-01-04 11:21 UTC (permalink / raw)
To: jaegeuk, chao; +Cc: Yangtao Li, linux-kernel, linux-f2fs-devel
Commit 8754b465c249 ("f2fs: support accounting iostat count and avg_bytes")
forgot to reset iostat count in f2fs_reset_iostat(), let's fix it.
Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
fs/f2fs/iostat.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c
index c53b62a7ca71..8460989e9bab 100644
--- a/fs/f2fs/iostat.c
+++ b/fs/f2fs/iostat.c
@@ -220,6 +220,7 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi)
spin_lock_irq(&sbi->iostat_lock);
for (i = 0; i < NR_IO_TYPE; i++) {
+ sbi->iostat_count[i] = 0;
sbi->rw_iostat[i] = 0;
sbi->prev_rw_iostat[i] = 0;
}
--
2.25.1
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() @ 2023-01-04 11:21 ` Yangtao Li 0 siblings, 0 replies; 18+ messages in thread From: Yangtao Li @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: linux-f2fs-devel, linux-kernel, Yangtao Li Commit 8754b465c249 ("f2fs: support accounting iostat count and avg_bytes") forgot to reset iostat count in f2fs_reset_iostat(), let's fix it. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/iostat.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index c53b62a7ca71..8460989e9bab 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -220,6 +220,7 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) spin_lock_irq(&sbi->iostat_lock); for (i = 0; i < NR_IO_TYPE; i++) { + sbi->iostat_count[i] = 0; sbi->rw_iostat[i] = 0; sbi->prev_rw_iostat[i] = 0; } -- 2.25.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [f2fs-dev] [PATCH 2/4] f2fs: no need to call ktime_get_real_seconds() if iostat is not enabled 2023-01-04 11:21 ` Yangtao Li @ 2023-01-04 11:21 ` Yangtao Li -1 siblings, 0 replies; 18+ messages in thread From: Yangtao Li via Linux-f2fs-devel @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: Yangtao Li, linux-kernel, linux-f2fs-devel When the iostat is not enabled, it is meaningless to call ktime_get_real_seconds() to assign values to variables. Let's put the call to the ktime_get_real_seconds() after iostat is enabled. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/iostat.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index 8460989e9bab..e7d03c446994 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -29,12 +29,11 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) { struct super_block *sb = seq->private; struct f2fs_sb_info *sbi = F2FS_SB(sb); - time64_t now = ktime_get_real_seconds(); if (!sbi->iostat_enable) return 0; - seq_printf(seq, "time: %-16llu\n", now); + seq_printf(seq, "time: %-16llu\n", ktime_get_real_seconds()); seq_printf(seq, "\t\t\t%-16s %-16s %-16s\n", "io_bytes", "count", "avg_bytes"); -- 2.25.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/4] f2fs: no need to call ktime_get_real_seconds() if iostat is not enabled @ 2023-01-04 11:21 ` Yangtao Li 0 siblings, 0 replies; 18+ messages in thread From: Yangtao Li @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: linux-f2fs-devel, linux-kernel, Yangtao Li When the iostat is not enabled, it is meaningless to call ktime_get_real_seconds() to assign values to variables. Let's put the call to the ktime_get_real_seconds() after iostat is enabled. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/iostat.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index 8460989e9bab..e7d03c446994 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -29,12 +29,11 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) { struct super_block *sb = seq->private; struct f2fs_sb_info *sbi = F2FS_SB(sb); - time64_t now = ktime_get_real_seconds(); if (!sbi->iostat_enable) return 0; - seq_printf(seq, "time: %-16llu\n", now); + seq_printf(seq, "time: %-16llu\n", ktime_get_real_seconds()); seq_printf(seq, "\t\t\t%-16s %-16s %-16s\n", "io_bytes", "count", "avg_bytes"); -- 2.25.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [f2fs-dev] [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro 2023-01-04 11:21 ` Yangtao Li @ 2023-01-04 11:21 ` Yangtao Li -1 siblings, 0 replies; 18+ messages in thread From: Yangtao Li via Linux-f2fs-devel @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: Yangtao Li, linux-kernel, linux-f2fs-devel Define IOSTAT_INFO_SHOW macro and use it to simplify code. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/iostat.c | 136 +++++++++++------------------------------------ 1 file changed, 32 insertions(+), 104 deletions(-) diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index e7d03c446994..991605fcfe0b 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -25,6 +25,12 @@ static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi, sbi->iostat_count[type]) : 0; } +#define IOSTAT_INFO_SHOW(name, type) \ + seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ + name":", sbi->rw_iostat[type], \ + sbi->iostat_count[type], \ + iostat_get_avg_bytes(sbi, type)) \ + int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) { struct super_block *sb = seq->private; @@ -39,120 +45,42 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) /* print app write IOs */ seq_puts(seq, "[WRITE]\n"); - seq_printf(seq, "app buffered data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_IO], - sbi->iostat_count[APP_BUFFERED_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_IO)); - seq_printf(seq, "app direct data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_DIRECT_IO], - sbi->iostat_count[APP_DIRECT_IO], - iostat_get_avg_bytes(sbi, APP_DIRECT_IO)); - seq_printf(seq, "app mapped data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_IO], - sbi->iostat_count[APP_MAPPED_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_IO)); - seq_printf(seq, "app buffered cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_CDATA_IO], - sbi->iostat_count[APP_BUFFERED_CDATA_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_CDATA_IO)); - seq_printf(seq, "app mapped cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_CDATA_IO], - sbi->iostat_count[APP_MAPPED_CDATA_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_CDATA_IO)); + IOSTAT_INFO_SHOW("app buffered data", APP_BUFFERED_IO); + IOSTAT_INFO_SHOW("app direct data", APP_DIRECT_IO); + IOSTAT_INFO_SHOW("app mapped data", APP_MAPPED_IO); + IOSTAT_INFO_SHOW("app buffered cdata", APP_BUFFERED_CDATA_IO); + IOSTAT_INFO_SHOW("app mapped cdata", APP_MAPPED_CDATA_IO); /* print fs write IOs */ - seq_printf(seq, "fs data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_DATA_IO], - sbi->iostat_count[FS_DATA_IO], - iostat_get_avg_bytes(sbi, FS_DATA_IO)); - seq_printf(seq, "fs cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CDATA_IO], - sbi->iostat_count[FS_CDATA_IO], - iostat_get_avg_bytes(sbi, FS_CDATA_IO)); - seq_printf(seq, "fs node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_NODE_IO], - sbi->iostat_count[FS_NODE_IO], - iostat_get_avg_bytes(sbi, FS_NODE_IO)); - seq_printf(seq, "fs meta: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_META_IO], - sbi->iostat_count[FS_META_IO], - iostat_get_avg_bytes(sbi, FS_META_IO)); - seq_printf(seq, "fs gc data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_GC_DATA_IO], - sbi->iostat_count[FS_GC_DATA_IO], - iostat_get_avg_bytes(sbi, FS_GC_DATA_IO)); - seq_printf(seq, "fs gc node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_GC_NODE_IO], - sbi->iostat_count[FS_GC_NODE_IO], - iostat_get_avg_bytes(sbi, FS_GC_NODE_IO)); - seq_printf(seq, "fs cp data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CP_DATA_IO], - sbi->iostat_count[FS_CP_DATA_IO], - iostat_get_avg_bytes(sbi, FS_CP_DATA_IO)); - seq_printf(seq, "fs cp node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CP_NODE_IO], - sbi->iostat_count[FS_CP_NODE_IO], - iostat_get_avg_bytes(sbi, FS_CP_NODE_IO)); - seq_printf(seq, "fs cp meta: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CP_META_IO], - sbi->iostat_count[FS_CP_META_IO], - iostat_get_avg_bytes(sbi, FS_CP_META_IO)); + IOSTAT_INFO_SHOW("fs data", FS_DATA_IO); + IOSTAT_INFO_SHOW("fs cdata", FS_CDATA_IO); + IOSTAT_INFO_SHOW("fs node", FS_NODE_IO); + IOSTAT_INFO_SHOW("fs meta", FS_META_IO); + IOSTAT_INFO_SHOW("fs gc data", FS_GC_DATA_IO); + IOSTAT_INFO_SHOW("fs gc node", FS_GC_NODE_IO); + IOSTAT_INFO_SHOW("fs cp data", FS_CP_DATA_IO); + IOSTAT_INFO_SHOW("fs cp node", FS_CP_NODE_IO); + IOSTAT_INFO_SHOW("fs cp meta", FS_CP_META_IO); /* print app read IOs */ seq_puts(seq, "[READ]\n"); - seq_printf(seq, "app buffered data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_READ_IO], - sbi->iostat_count[APP_BUFFERED_READ_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_READ_IO)); - seq_printf(seq, "app direct data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_DIRECT_READ_IO], - sbi->iostat_count[APP_DIRECT_READ_IO], - iostat_get_avg_bytes(sbi, APP_DIRECT_READ_IO)); - seq_printf(seq, "app mapped data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_READ_IO], - sbi->iostat_count[APP_MAPPED_READ_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_READ_IO)); - seq_printf(seq, "app buffered cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_CDATA_READ_IO], - sbi->iostat_count[APP_BUFFERED_CDATA_READ_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_CDATA_READ_IO)); - seq_printf(seq, "app mapped cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_CDATA_READ_IO], - sbi->iostat_count[APP_MAPPED_CDATA_READ_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_CDATA_READ_IO)); + IOSTAT_INFO_SHOW("app buffered data", APP_BUFFERED_READ_IO); + IOSTAT_INFO_SHOW("app direct data", APP_DIRECT_READ_IO); + IOSTAT_INFO_SHOW("app mapped data", APP_MAPPED_READ_IO); + IOSTAT_INFO_SHOW("app buffered cdata", APP_BUFFERED_CDATA_READ_IO); + IOSTAT_INFO_SHOW("app mapped cdata", APP_MAPPED_CDATA_READ_IO); /* print fs read IOs */ - seq_printf(seq, "fs data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_DATA_READ_IO], - sbi->iostat_count[FS_DATA_READ_IO], - iostat_get_avg_bytes(sbi, FS_DATA_READ_IO)); - seq_printf(seq, "fs gc data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_GDATA_READ_IO], - sbi->iostat_count[FS_GDATA_READ_IO], - iostat_get_avg_bytes(sbi, FS_GDATA_READ_IO)); - seq_printf(seq, "fs cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CDATA_READ_IO], - sbi->iostat_count[FS_CDATA_READ_IO], - iostat_get_avg_bytes(sbi, FS_CDATA_READ_IO)); - seq_printf(seq, "fs node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_NODE_READ_IO], - sbi->iostat_count[FS_NODE_READ_IO], - iostat_get_avg_bytes(sbi, FS_NODE_READ_IO)); - seq_printf(seq, "fs meta: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_META_READ_IO], - sbi->iostat_count[FS_META_READ_IO], - iostat_get_avg_bytes(sbi, FS_META_READ_IO)); + IOSTAT_INFO_SHOW("fs data", FS_DATA_READ_IO); + IOSTAT_INFO_SHOW("fs gc data", FS_GDATA_READ_IO); + IOSTAT_INFO_SHOW("fs cdata", FS_CDATA_READ_IO); + IOSTAT_INFO_SHOW("fs node", FS_NODE_READ_IO); + IOSTAT_INFO_SHOW("fs meta", FS_META_READ_IO); /* print other IOs */ seq_puts(seq, "[OTHER]\n"); - seq_printf(seq, "fs discard: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_DISCARD], - sbi->iostat_count[FS_DISCARD], - iostat_get_avg_bytes(sbi, FS_DISCARD)); - seq_printf(seq, "fs flush: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_FLUSH], - sbi->iostat_count[FS_FLUSH], - iostat_get_avg_bytes(sbi, FS_FLUSH)); + IOSTAT_INFO_SHOW("fs discard", FS_DISCARD); + IOSTAT_INFO_SHOW("fs flush", FS_FLUSH); return 0; } -- 2.25.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro @ 2023-01-04 11:21 ` Yangtao Li 0 siblings, 0 replies; 18+ messages in thread From: Yangtao Li @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: linux-f2fs-devel, linux-kernel, Yangtao Li Define IOSTAT_INFO_SHOW macro and use it to simplify code. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/iostat.c | 136 +++++++++++------------------------------------ 1 file changed, 32 insertions(+), 104 deletions(-) diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index e7d03c446994..991605fcfe0b 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -25,6 +25,12 @@ static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi, sbi->iostat_count[type]) : 0; } +#define IOSTAT_INFO_SHOW(name, type) \ + seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ + name":", sbi->rw_iostat[type], \ + sbi->iostat_count[type], \ + iostat_get_avg_bytes(sbi, type)) \ + int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) { struct super_block *sb = seq->private; @@ -39,120 +45,42 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) /* print app write IOs */ seq_puts(seq, "[WRITE]\n"); - seq_printf(seq, "app buffered data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_IO], - sbi->iostat_count[APP_BUFFERED_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_IO)); - seq_printf(seq, "app direct data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_DIRECT_IO], - sbi->iostat_count[APP_DIRECT_IO], - iostat_get_avg_bytes(sbi, APP_DIRECT_IO)); - seq_printf(seq, "app mapped data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_IO], - sbi->iostat_count[APP_MAPPED_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_IO)); - seq_printf(seq, "app buffered cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_CDATA_IO], - sbi->iostat_count[APP_BUFFERED_CDATA_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_CDATA_IO)); - seq_printf(seq, "app mapped cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_CDATA_IO], - sbi->iostat_count[APP_MAPPED_CDATA_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_CDATA_IO)); + IOSTAT_INFO_SHOW("app buffered data", APP_BUFFERED_IO); + IOSTAT_INFO_SHOW("app direct data", APP_DIRECT_IO); + IOSTAT_INFO_SHOW("app mapped data", APP_MAPPED_IO); + IOSTAT_INFO_SHOW("app buffered cdata", APP_BUFFERED_CDATA_IO); + IOSTAT_INFO_SHOW("app mapped cdata", APP_MAPPED_CDATA_IO); /* print fs write IOs */ - seq_printf(seq, "fs data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_DATA_IO], - sbi->iostat_count[FS_DATA_IO], - iostat_get_avg_bytes(sbi, FS_DATA_IO)); - seq_printf(seq, "fs cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CDATA_IO], - sbi->iostat_count[FS_CDATA_IO], - iostat_get_avg_bytes(sbi, FS_CDATA_IO)); - seq_printf(seq, "fs node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_NODE_IO], - sbi->iostat_count[FS_NODE_IO], - iostat_get_avg_bytes(sbi, FS_NODE_IO)); - seq_printf(seq, "fs meta: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_META_IO], - sbi->iostat_count[FS_META_IO], - iostat_get_avg_bytes(sbi, FS_META_IO)); - seq_printf(seq, "fs gc data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_GC_DATA_IO], - sbi->iostat_count[FS_GC_DATA_IO], - iostat_get_avg_bytes(sbi, FS_GC_DATA_IO)); - seq_printf(seq, "fs gc node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_GC_NODE_IO], - sbi->iostat_count[FS_GC_NODE_IO], - iostat_get_avg_bytes(sbi, FS_GC_NODE_IO)); - seq_printf(seq, "fs cp data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CP_DATA_IO], - sbi->iostat_count[FS_CP_DATA_IO], - iostat_get_avg_bytes(sbi, FS_CP_DATA_IO)); - seq_printf(seq, "fs cp node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CP_NODE_IO], - sbi->iostat_count[FS_CP_NODE_IO], - iostat_get_avg_bytes(sbi, FS_CP_NODE_IO)); - seq_printf(seq, "fs cp meta: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CP_META_IO], - sbi->iostat_count[FS_CP_META_IO], - iostat_get_avg_bytes(sbi, FS_CP_META_IO)); + IOSTAT_INFO_SHOW("fs data", FS_DATA_IO); + IOSTAT_INFO_SHOW("fs cdata", FS_CDATA_IO); + IOSTAT_INFO_SHOW("fs node", FS_NODE_IO); + IOSTAT_INFO_SHOW("fs meta", FS_META_IO); + IOSTAT_INFO_SHOW("fs gc data", FS_GC_DATA_IO); + IOSTAT_INFO_SHOW("fs gc node", FS_GC_NODE_IO); + IOSTAT_INFO_SHOW("fs cp data", FS_CP_DATA_IO); + IOSTAT_INFO_SHOW("fs cp node", FS_CP_NODE_IO); + IOSTAT_INFO_SHOW("fs cp meta", FS_CP_META_IO); /* print app read IOs */ seq_puts(seq, "[READ]\n"); - seq_printf(seq, "app buffered data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_READ_IO], - sbi->iostat_count[APP_BUFFERED_READ_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_READ_IO)); - seq_printf(seq, "app direct data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_DIRECT_READ_IO], - sbi->iostat_count[APP_DIRECT_READ_IO], - iostat_get_avg_bytes(sbi, APP_DIRECT_READ_IO)); - seq_printf(seq, "app mapped data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_READ_IO], - sbi->iostat_count[APP_MAPPED_READ_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_READ_IO)); - seq_printf(seq, "app buffered cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_BUFFERED_CDATA_READ_IO], - sbi->iostat_count[APP_BUFFERED_CDATA_READ_IO], - iostat_get_avg_bytes(sbi, APP_BUFFERED_CDATA_READ_IO)); - seq_printf(seq, "app mapped cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[APP_MAPPED_CDATA_READ_IO], - sbi->iostat_count[APP_MAPPED_CDATA_READ_IO], - iostat_get_avg_bytes(sbi, APP_MAPPED_CDATA_READ_IO)); + IOSTAT_INFO_SHOW("app buffered data", APP_BUFFERED_READ_IO); + IOSTAT_INFO_SHOW("app direct data", APP_DIRECT_READ_IO); + IOSTAT_INFO_SHOW("app mapped data", APP_MAPPED_READ_IO); + IOSTAT_INFO_SHOW("app buffered cdata", APP_BUFFERED_CDATA_READ_IO); + IOSTAT_INFO_SHOW("app mapped cdata", APP_MAPPED_CDATA_READ_IO); /* print fs read IOs */ - seq_printf(seq, "fs data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_DATA_READ_IO], - sbi->iostat_count[FS_DATA_READ_IO], - iostat_get_avg_bytes(sbi, FS_DATA_READ_IO)); - seq_printf(seq, "fs gc data: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_GDATA_READ_IO], - sbi->iostat_count[FS_GDATA_READ_IO], - iostat_get_avg_bytes(sbi, FS_GDATA_READ_IO)); - seq_printf(seq, "fs cdata: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_CDATA_READ_IO], - sbi->iostat_count[FS_CDATA_READ_IO], - iostat_get_avg_bytes(sbi, FS_CDATA_READ_IO)); - seq_printf(seq, "fs node: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_NODE_READ_IO], - sbi->iostat_count[FS_NODE_READ_IO], - iostat_get_avg_bytes(sbi, FS_NODE_READ_IO)); - seq_printf(seq, "fs meta: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_META_READ_IO], - sbi->iostat_count[FS_META_READ_IO], - iostat_get_avg_bytes(sbi, FS_META_READ_IO)); + IOSTAT_INFO_SHOW("fs data", FS_DATA_READ_IO); + IOSTAT_INFO_SHOW("fs gc data", FS_GDATA_READ_IO); + IOSTAT_INFO_SHOW("fs cdata", FS_CDATA_READ_IO); + IOSTAT_INFO_SHOW("fs node", FS_NODE_READ_IO); + IOSTAT_INFO_SHOW("fs meta", FS_META_READ_IO); /* print other IOs */ seq_puts(seq, "[OTHER]\n"); - seq_printf(seq, "fs discard: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_DISCARD], - sbi->iostat_count[FS_DISCARD], - iostat_get_avg_bytes(sbi, FS_DISCARD)); - seq_printf(seq, "fs flush: %-16llu %-16llu %-16llu\n", - sbi->rw_iostat[FS_FLUSH], - sbi->iostat_count[FS_FLUSH], - iostat_get_avg_bytes(sbi, FS_FLUSH)); + IOSTAT_INFO_SHOW("fs discard", FS_DISCARD); + IOSTAT_INFO_SHOW("fs flush", FS_FLUSH); return 0; } -- 2.25.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [f2fs-dev] [PATCH 4/4] f2fs: rename rw_iostat to iostat_bytes 2023-01-04 11:21 ` Yangtao Li @ 2023-01-04 11:21 ` Yangtao Li -1 siblings, 0 replies; 18+ messages in thread From: Yangtao Li via Linux-f2fs-devel @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: Yangtao Li, linux-kernel, linux-f2fs-devel The contents stored in the rw_iostat and prev_rw_iostat arrays do not quite match the meaning of the names. In fact, array storage is not only read, write io, but also discard and flush. In addition, in order to better distinguish it from the iostat_count array, it is more accurate to say that io bytes are stored in it. Also, the FS_DISCARD and FS_FLUSH_IO names are less harmonious than others. Let's change to new names. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/f2fs.h | 8 ++++---- fs/f2fs/iostat.c | 20 ++++++++++---------- fs/f2fs/segment.c | 4 ++-- include/trace/events/f2fs.h | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 0a24447472db..331c330ea31d 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1191,8 +1191,8 @@ enum iostat_type { FS_META_READ_IO, /* meta read IOs */ /* other */ - FS_DISCARD, /* discard */ - FS_FLUSH, /* flush */ + FS_DISCARD_IO, /* discard */ + FS_FLUSH_IO, /* flush */ NR_IO_TYPE, }; @@ -1856,8 +1856,8 @@ struct f2fs_sb_info { /* For app/fs IO statistics */ spinlock_t iostat_lock; unsigned long long iostat_count[NR_IO_TYPE]; - unsigned long long rw_iostat[NR_IO_TYPE]; - unsigned long long prev_rw_iostat[NR_IO_TYPE]; + unsigned long long iostat_bytes[NR_IO_TYPE]; + unsigned long long prev_iostat_bytes[NR_IO_TYPE]; bool iostat_enable; unsigned long iostat_next_period; unsigned int iostat_period_ms; diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index 991605fcfe0b..59c72f92191a 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -21,13 +21,13 @@ static mempool_t *bio_iostat_ctx_pool; static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi, enum iostat_type type) { - return sbi->iostat_count[type] ? div64_u64(sbi->rw_iostat[type], + return sbi->iostat_count[type] ? div64_u64(sbi->iostat_bytes[type], sbi->iostat_count[type]) : 0; } #define IOSTAT_INFO_SHOW(name, type) \ seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ - name":", sbi->rw_iostat[type], \ + name":", sbi->iostat_bytes[type], \ sbi->iostat_count[type], \ iostat_get_avg_bytes(sbi, type)) \ @@ -79,8 +79,8 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) /* print other IOs */ seq_puts(seq, "[OTHER]\n"); - IOSTAT_INFO_SHOW("fs discard", FS_DISCARD); - IOSTAT_INFO_SHOW("fs flush", FS_FLUSH); + IOSTAT_INFO_SHOW("fs discard", FS_DISCARD_IO); + IOSTAT_INFO_SHOW("fs flush", FS_FLUSH_IO); return 0; } @@ -129,9 +129,9 @@ static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi) msecs_to_jiffies(sbi->iostat_period_ms); for (i = 0; i < NR_IO_TYPE; i++) { - iostat_diff[i] = sbi->rw_iostat[i] - - sbi->prev_rw_iostat[i]; - sbi->prev_rw_iostat[i] = sbi->rw_iostat[i]; + iostat_diff[i] = sbi->iostat_bytes[i] - + sbi->prev_iostat_bytes[i]; + sbi->prev_iostat_bytes[i] = sbi->iostat_bytes[i]; } spin_unlock_irqrestore(&sbi->iostat_lock, flags); @@ -148,8 +148,8 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) spin_lock_irq(&sbi->iostat_lock); for (i = 0; i < NR_IO_TYPE; i++) { sbi->iostat_count[i] = 0; - sbi->rw_iostat[i] = 0; - sbi->prev_rw_iostat[i] = 0; + sbi->iostat_bytes[i] = 0; + sbi->prev_iostat_bytes[i] = 0; } spin_unlock_irq(&sbi->iostat_lock); @@ -161,7 +161,7 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) static inline void __f2fs_update_iostat(struct f2fs_sb_info *sbi, enum iostat_type type, unsigned long long io_bytes) { - sbi->rw_iostat[type] += io_bytes; + sbi->iostat_bytes[type] += io_bytes; sbi->iostat_count[type]++; } diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 34e9dc4df5bb..38bae9107a3b 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -504,7 +504,7 @@ static int __submit_flush_wait(struct f2fs_sb_info *sbi, { int ret = blkdev_issue_flush(bdev); if (!ret) - f2fs_update_iostat(sbi, NULL, FS_FLUSH, 0); + f2fs_update_iostat(sbi, NULL, FS_FLUSH_IO, 0); trace_f2fs_issue_flush(bdev, test_opt(sbi, NOBARRIER), test_opt(sbi, FLUSH_MERGE), ret); @@ -1184,7 +1184,7 @@ static int __submit_discard_cmd(struct f2fs_sb_info *sbi, atomic_inc(&dcc->issued_discard); - f2fs_update_iostat(sbi, NULL, FS_DISCARD, len * F2FS_BLKSIZE); + f2fs_update_iostat(sbi, NULL, FS_DISCARD_IO, len * F2FS_BLKSIZE); lstart += len; start += len; diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h index 9183a0a11e26..3852085198fb 100644 --- a/include/trace/events/f2fs.h +++ b/include/trace/events/f2fs.h @@ -1972,7 +1972,7 @@ TRACE_EVENT(f2fs_iostat, __entry->fs_cdrio = iostat[FS_CDATA_READ_IO]; __entry->fs_nrio = iostat[FS_NODE_READ_IO]; __entry->fs_mrio = iostat[FS_META_READ_IO]; - __entry->fs_discard = iostat[FS_DISCARD]; + __entry->fs_discard = iostat[FS_DISCARD_IO]; ), TP_printk("dev = (%d,%d), " -- 2.25.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/4] f2fs: rename rw_iostat to iostat_bytes @ 2023-01-04 11:21 ` Yangtao Li 0 siblings, 0 replies; 18+ messages in thread From: Yangtao Li @ 2023-01-04 11:21 UTC (permalink / raw) To: jaegeuk, chao; +Cc: linux-f2fs-devel, linux-kernel, Yangtao Li The contents stored in the rw_iostat and prev_rw_iostat arrays do not quite match the meaning of the names. In fact, array storage is not only read, write io, but also discard and flush. In addition, in order to better distinguish it from the iostat_count array, it is more accurate to say that io bytes are stored in it. Also, the FS_DISCARD and FS_FLUSH_IO names are less harmonious than others. Let's change to new names. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- fs/f2fs/f2fs.h | 8 ++++---- fs/f2fs/iostat.c | 20 ++++++++++---------- fs/f2fs/segment.c | 4 ++-- include/trace/events/f2fs.h | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 0a24447472db..331c330ea31d 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1191,8 +1191,8 @@ enum iostat_type { FS_META_READ_IO, /* meta read IOs */ /* other */ - FS_DISCARD, /* discard */ - FS_FLUSH, /* flush */ + FS_DISCARD_IO, /* discard */ + FS_FLUSH_IO, /* flush */ NR_IO_TYPE, }; @@ -1856,8 +1856,8 @@ struct f2fs_sb_info { /* For app/fs IO statistics */ spinlock_t iostat_lock; unsigned long long iostat_count[NR_IO_TYPE]; - unsigned long long rw_iostat[NR_IO_TYPE]; - unsigned long long prev_rw_iostat[NR_IO_TYPE]; + unsigned long long iostat_bytes[NR_IO_TYPE]; + unsigned long long prev_iostat_bytes[NR_IO_TYPE]; bool iostat_enable; unsigned long iostat_next_period; unsigned int iostat_period_ms; diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c index 991605fcfe0b..59c72f92191a 100644 --- a/fs/f2fs/iostat.c +++ b/fs/f2fs/iostat.c @@ -21,13 +21,13 @@ static mempool_t *bio_iostat_ctx_pool; static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi, enum iostat_type type) { - return sbi->iostat_count[type] ? div64_u64(sbi->rw_iostat[type], + return sbi->iostat_count[type] ? div64_u64(sbi->iostat_bytes[type], sbi->iostat_count[type]) : 0; } #define IOSTAT_INFO_SHOW(name, type) \ seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ - name":", sbi->rw_iostat[type], \ + name":", sbi->iostat_bytes[type], \ sbi->iostat_count[type], \ iostat_get_avg_bytes(sbi, type)) \ @@ -79,8 +79,8 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset) /* print other IOs */ seq_puts(seq, "[OTHER]\n"); - IOSTAT_INFO_SHOW("fs discard", FS_DISCARD); - IOSTAT_INFO_SHOW("fs flush", FS_FLUSH); + IOSTAT_INFO_SHOW("fs discard", FS_DISCARD_IO); + IOSTAT_INFO_SHOW("fs flush", FS_FLUSH_IO); return 0; } @@ -129,9 +129,9 @@ static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi) msecs_to_jiffies(sbi->iostat_period_ms); for (i = 0; i < NR_IO_TYPE; i++) { - iostat_diff[i] = sbi->rw_iostat[i] - - sbi->prev_rw_iostat[i]; - sbi->prev_rw_iostat[i] = sbi->rw_iostat[i]; + iostat_diff[i] = sbi->iostat_bytes[i] - + sbi->prev_iostat_bytes[i]; + sbi->prev_iostat_bytes[i] = sbi->iostat_bytes[i]; } spin_unlock_irqrestore(&sbi->iostat_lock, flags); @@ -148,8 +148,8 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) spin_lock_irq(&sbi->iostat_lock); for (i = 0; i < NR_IO_TYPE; i++) { sbi->iostat_count[i] = 0; - sbi->rw_iostat[i] = 0; - sbi->prev_rw_iostat[i] = 0; + sbi->iostat_bytes[i] = 0; + sbi->prev_iostat_bytes[i] = 0; } spin_unlock_irq(&sbi->iostat_lock); @@ -161,7 +161,7 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) static inline void __f2fs_update_iostat(struct f2fs_sb_info *sbi, enum iostat_type type, unsigned long long io_bytes) { - sbi->rw_iostat[type] += io_bytes; + sbi->iostat_bytes[type] += io_bytes; sbi->iostat_count[type]++; } diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 34e9dc4df5bb..38bae9107a3b 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -504,7 +504,7 @@ static int __submit_flush_wait(struct f2fs_sb_info *sbi, { int ret = blkdev_issue_flush(bdev); if (!ret) - f2fs_update_iostat(sbi, NULL, FS_FLUSH, 0); + f2fs_update_iostat(sbi, NULL, FS_FLUSH_IO, 0); trace_f2fs_issue_flush(bdev, test_opt(sbi, NOBARRIER), test_opt(sbi, FLUSH_MERGE), ret); @@ -1184,7 +1184,7 @@ static int __submit_discard_cmd(struct f2fs_sb_info *sbi, atomic_inc(&dcc->issued_discard); - f2fs_update_iostat(sbi, NULL, FS_DISCARD, len * F2FS_BLKSIZE); + f2fs_update_iostat(sbi, NULL, FS_DISCARD_IO, len * F2FS_BLKSIZE); lstart += len; start += len; diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h index 9183a0a11e26..3852085198fb 100644 --- a/include/trace/events/f2fs.h +++ b/include/trace/events/f2fs.h @@ -1972,7 +1972,7 @@ TRACE_EVENT(f2fs_iostat, __entry->fs_cdrio = iostat[FS_CDATA_READ_IO]; __entry->fs_nrio = iostat[FS_NODE_READ_IO]; __entry->fs_mrio = iostat[FS_META_READ_IO]; - __entry->fs_discard = iostat[FS_DISCARD]; + __entry->fs_discard = iostat[FS_DISCARD_IO]; ), TP_printk("dev = (%d,%d), " -- 2.25.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() 2023-01-04 11:21 ` Yangtao Li @ 2023-01-04 19:20 ` Jaegeuk Kim -1 siblings, 0 replies; 18+ messages in thread From: Jaegeuk Kim @ 2023-01-04 19:20 UTC (permalink / raw) To: Yangtao Li; +Cc: linux-kernel, linux-f2fs-devel Hi Yangtao, These are all in dev-test branch, which means you don't need to stack up more patches on top of it. I just integrated most of them into two original patches. Could you please take a look at this? c1706cc0cd72 f2fs: add iostat support for flush acd6f525e01c f2fs: support accounting iostat count and avg_bytes https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/log/?h=dev-test Thanks, On 01/04, Yangtao Li wrote: > Commit 8754b465c249 ("f2fs: support accounting iostat count and avg_bytes") > forgot to reset iostat count in f2fs_reset_iostat(), let's fix it. > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > fs/f2fs/iostat.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c > index c53b62a7ca71..8460989e9bab 100644 > --- a/fs/f2fs/iostat.c > +++ b/fs/f2fs/iostat.c > @@ -220,6 +220,7 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) > > spin_lock_irq(&sbi->iostat_lock); > for (i = 0; i < NR_IO_TYPE; i++) { > + sbi->iostat_count[i] = 0; > sbi->rw_iostat[i] = 0; > sbi->prev_rw_iostat[i] = 0; > } > -- > 2.25.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() @ 2023-01-04 19:20 ` Jaegeuk Kim 0 siblings, 0 replies; 18+ messages in thread From: Jaegeuk Kim @ 2023-01-04 19:20 UTC (permalink / raw) To: Yangtao Li; +Cc: chao, linux-f2fs-devel, linux-kernel Hi Yangtao, These are all in dev-test branch, which means you don't need to stack up more patches on top of it. I just integrated most of them into two original patches. Could you please take a look at this? c1706cc0cd72 f2fs: add iostat support for flush acd6f525e01c f2fs: support accounting iostat count and avg_bytes https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/log/?h=dev-test Thanks, On 01/04, Yangtao Li wrote: > Commit 8754b465c249 ("f2fs: support accounting iostat count and avg_bytes") > forgot to reset iostat count in f2fs_reset_iostat(), let's fix it. > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > fs/f2fs/iostat.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c > index c53b62a7ca71..8460989e9bab 100644 > --- a/fs/f2fs/iostat.c > +++ b/fs/f2fs/iostat.c > @@ -220,6 +220,7 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi) > > spin_lock_irq(&sbi->iostat_lock); > for (i = 0; i < NR_IO_TYPE; i++) { > + sbi->iostat_count[i] = 0; > sbi->rw_iostat[i] = 0; > sbi->prev_rw_iostat[i] = 0; > } > -- > 2.25.1 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() 2023-01-04 19:20 ` Jaegeuk Kim @ 2023-01-11 14:06 ` Chao Yu -1 siblings, 0 replies; 18+ messages in thread From: Chao Yu @ 2023-01-11 14:06 UTC (permalink / raw) To: Jaegeuk Kim, Yangtao Li; +Cc: linux-kernel, linux-f2fs-devel On 2023/1/5 3:20, Jaegeuk Kim wrote: > Hi Yangtao, > > These are all in dev-test branch, which means you don't need to stack up more > patches on top of it. I just integrated most of them into two original patches. > Could you please take a look at this? > > c1706cc0cd72 f2fs: add iostat support for flush > acd6f525e01c f2fs: support accounting iostat count and avg_bytes +#define IOSTAT_INFO_SHOW(name, type) \ + seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ + name":", sbi->iostat_bytes[type], \ + sbi->iostat_count[type], \ + iostat_get_avg_bytes(sbi, type)) \ '\' doesn't align in column, otherwise it looks good to me. Reviewed-by: Chao Yu <chao@kernel.org> Thanks, _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() @ 2023-01-11 14:06 ` Chao Yu 0 siblings, 0 replies; 18+ messages in thread From: Chao Yu @ 2023-01-11 14:06 UTC (permalink / raw) To: Jaegeuk Kim, Yangtao Li; +Cc: linux-f2fs-devel, linux-kernel On 2023/1/5 3:20, Jaegeuk Kim wrote: > Hi Yangtao, > > These are all in dev-test branch, which means you don't need to stack up more > patches on top of it. I just integrated most of them into two original patches. > Could you please take a look at this? > > c1706cc0cd72 f2fs: add iostat support for flush > acd6f525e01c f2fs: support accounting iostat count and avg_bytes +#define IOSTAT_INFO_SHOW(name, type) \ + seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ + name":", sbi->iostat_bytes[type], \ + sbi->iostat_count[type], \ + iostat_get_avg_bytes(sbi, type)) \ '\' doesn't align in column, otherwise it looks good to me. Reviewed-by: Chao Yu <chao@kernel.org> Thanks, ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() 2023-01-11 14:06 ` Chao Yu @ 2023-01-11 19:17 ` Jaegeuk Kim -1 siblings, 0 replies; 18+ messages in thread From: Jaegeuk Kim @ 2023-01-11 19:17 UTC (permalink / raw) To: Chao Yu; +Cc: linux-f2fs-devel, linux-kernel, Yangtao Li On 01/11, Chao Yu wrote: > On 2023/1/5 3:20, Jaegeuk Kim wrote: > > Hi Yangtao, > > > > These are all in dev-test branch, which means you don't need to stack up more > > patches on top of it. I just integrated most of them into two original patches. > > Could you please take a look at this? > > > > c1706cc0cd72 f2fs: add iostat support for flush > > acd6f525e01c f2fs: support accounting iostat count and avg_bytes > > +#define IOSTAT_INFO_SHOW(name, type) \ > + seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ > + name":", sbi->iostat_bytes[type], \ > + sbi->iostat_count[type], \ > + iostat_get_avg_bytes(sbi, type)) \ > > '\' doesn't align in column, otherwise it looks good to me. Applied with the fix. > > Reviewed-by: Chao Yu <chao@kernel.org> > > Thanks, _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() @ 2023-01-11 19:17 ` Jaegeuk Kim 0 siblings, 0 replies; 18+ messages in thread From: Jaegeuk Kim @ 2023-01-11 19:17 UTC (permalink / raw) To: Chao Yu; +Cc: Yangtao Li, linux-f2fs-devel, linux-kernel On 01/11, Chao Yu wrote: > On 2023/1/5 3:20, Jaegeuk Kim wrote: > > Hi Yangtao, > > > > These are all in dev-test branch, which means you don't need to stack up more > > patches on top of it. I just integrated most of them into two original patches. > > Could you please take a look at this? > > > > c1706cc0cd72 f2fs: add iostat support for flush > > acd6f525e01c f2fs: support accounting iostat count and avg_bytes > > +#define IOSTAT_INFO_SHOW(name, type) \ > + seq_printf(seq, "%-23s %-16llu %-16llu %-16llu\n", \ > + name":", sbi->iostat_bytes[type], \ > + sbi->iostat_count[type], \ > + iostat_get_avg_bytes(sbi, type)) \ > > '\' doesn't align in column, otherwise it looks good to me. Applied with the fix. > > Reviewed-by: Chao Yu <chao@kernel.org> > > Thanks, ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() 2023-01-11 19:17 ` Jaegeuk Kim @ 2023-01-12 15:13 ` Yangtao Li -1 siblings, 0 replies; 18+ messages in thread From: Yangtao Li via Linux-f2fs-devel @ 2023-01-12 15:13 UTC (permalink / raw) To: jaegeuk, chao; +Cc: linux-kernel, linux-f2fs-devel Dear Jaegeuk, > Hi Yangtao, > > These are all in dev-test branch, which means you don't need to stack up more > patches on top of it. I just integrated most of them into two original patches. Ok, I'll merge the previous commits and resend next time. > Could you please take a look at this? LGTM. > Applied with the fix. Thanks! BTW, I would like to ask whether it is possible to maintain discard in separated file. https://patchwork.kernel.org/project/f2fs/patch/20221217132318.37718-1-frank.li@vivo.com/ MBR, Yangtao _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() @ 2023-01-12 15:13 ` Yangtao Li 0 siblings, 0 replies; 18+ messages in thread From: Yangtao Li @ 2023-01-12 15:13 UTC (permalink / raw) To: jaegeuk, chao; +Cc: linux-f2fs-devel, linux-kernel Dear Jaegeuk, > Hi Yangtao, > > These are all in dev-test branch, which means you don't need to stack up more > patches on top of it. I just integrated most of them into two original patches. Ok, I'll merge the previous commits and resend next time. > Could you please take a look at this? LGTM. > Applied with the fix. Thanks! BTW, I would like to ask whether it is possible to maintain discard in separated file. https://patchwork.kernel.org/project/f2fs/patch/20221217132318.37718-1-frank.li@vivo.com/ MBR, Yangtao ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() 2023-01-12 15:13 ` Yangtao Li @ 2023-01-12 23:59 ` Jaegeuk Kim -1 siblings, 0 replies; 18+ messages in thread From: Jaegeuk Kim @ 2023-01-12 23:59 UTC (permalink / raw) To: Yangtao Li; +Cc: linux-kernel, linux-f2fs-devel On 01/12, Yangtao Li wrote: > Dear Jaegeuk, > > > Hi Yangtao, > > > > These are all in dev-test branch, which means you don't need to stack up more > > patches on top of it. I just integrated most of them into two original patches. > > Ok, I'll merge the previous commits and resend next time. > > > Could you please take a look at this? > > LGTM. > > > Applied with the fix. > > Thanks! > > BTW, I would like to ask whether it is possible to maintain discard in separated file. > > https://patchwork.kernel.org/project/f2fs/patch/20221217132318.37718-1-frank.li@vivo.com/ Not worth. > > MBR, > Yangtao _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() @ 2023-01-12 23:59 ` Jaegeuk Kim 0 siblings, 0 replies; 18+ messages in thread From: Jaegeuk Kim @ 2023-01-12 23:59 UTC (permalink / raw) To: Yangtao Li; +Cc: chao, linux-f2fs-devel, linux-kernel On 01/12, Yangtao Li wrote: > Dear Jaegeuk, > > > Hi Yangtao, > > > > These are all in dev-test branch, which means you don't need to stack up more > > patches on top of it. I just integrated most of them into two original patches. > > Ok, I'll merge the previous commits and resend next time. > > > Could you please take a look at this? > > LGTM. > > > Applied with the fix. > > Thanks! > > BTW, I would like to ask whether it is possible to maintain discard in separated file. > > https://patchwork.kernel.org/project/f2fs/patch/20221217132318.37718-1-frank.li@vivo.com/ Not worth. > > MBR, > Yangtao ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2023-01-12 23:59 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-01-04 11:21 [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Yangtao Li via Linux-f2fs-devel 2023-01-04 11:21 ` Yangtao Li 2023-01-04 11:21 ` [f2fs-dev] [PATCH 2/4] f2fs: no need to call ktime_get_real_seconds() if iostat is not enabled Yangtao Li via Linux-f2fs-devel 2023-01-04 11:21 ` Yangtao Li 2023-01-04 11:21 ` [f2fs-dev] [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro Yangtao Li via Linux-f2fs-devel 2023-01-04 11:21 ` Yangtao Li 2023-01-04 11:21 ` [f2fs-dev] [PATCH 4/4] f2fs: rename rw_iostat to iostat_bytes Yangtao Li via Linux-f2fs-devel 2023-01-04 11:21 ` Yangtao Li 2023-01-04 19:20 ` [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Jaegeuk Kim 2023-01-04 19:20 ` Jaegeuk Kim 2023-01-11 14:06 ` [f2fs-dev] " Chao Yu 2023-01-11 14:06 ` Chao Yu 2023-01-11 19:17 ` [f2fs-dev] " Jaegeuk Kim 2023-01-11 19:17 ` Jaegeuk Kim 2023-01-12 15:13 ` [f2fs-dev] " Yangtao Li via Linux-f2fs-devel 2023-01-12 15:13 ` Yangtao Li 2023-01-12 23:59 ` [f2fs-dev] " Jaegeuk Kim 2023-01-12 23:59 ` Jaegeuk Kim
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.