linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
* [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat()
@ 2023-01-04 11:21 Yangtao Li via Linux-f2fs-devel
  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
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ 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] 9+ 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 [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 via Linux-f2fs-devel
  2023-01-04 11:21 ` [f2fs-dev] [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro Yangtao Li via Linux-f2fs-devel
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ 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] 9+ messages in thread

* [f2fs-dev] [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro
  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 ` [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 via Linux-f2fs-devel
  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 19:20 ` [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Jaegeuk Kim
  3 siblings, 0 replies; 9+ 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] 9+ messages in thread

* [f2fs-dev] [PATCH 4/4] f2fs: rename rw_iostat to iostat_bytes
  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 ` [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 ` [f2fs-dev] [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro Yangtao Li via Linux-f2fs-devel
@ 2023-01-04 11:21 ` Yangtao Li via Linux-f2fs-devel
  2023-01-04 19:20 ` [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Jaegeuk Kim
  3 siblings, 0 replies; 9+ 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] 9+ messages in thread

* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat()
  2023-01-04 11:21 [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Yangtao Li via Linux-f2fs-devel
                   ` (2 preceding siblings ...)
  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 19:20 ` Jaegeuk Kim
  2023-01-11 14:06   ` Chao Yu
  3 siblings, 1 reply; 9+ 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] 9+ messages in thread

* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat()
  2023-01-04 19:20 ` [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Jaegeuk Kim
@ 2023-01-11 14:06   ` Chao Yu
  2023-01-11 19:17     ` Jaegeuk Kim
  0 siblings, 1 reply; 9+ 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] 9+ 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
  2023-01-12 15:13       ` Yangtao Li via Linux-f2fs-devel
  0 siblings, 1 reply; 9+ 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] 9+ 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 via Linux-f2fs-devel
  2023-01-12 23:59         ` Jaegeuk Kim
  0 siblings, 1 reply; 9+ 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] 9+ messages in thread

* Re: [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat()
  2023-01-12 15:13       ` Yangtao Li via Linux-f2fs-devel
@ 2023-01-12 23:59         ` Jaegeuk Kim
  0 siblings, 0 replies; 9+ 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] 9+ messages in thread

end of thread, other threads:[~2023-01-12 23:59 UTC | newest]

Thread overview: 9+ 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 ` [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 ` [f2fs-dev] [PATCH 3/4] f2fs: introduce IOSTAT_INFO_SHOW macro Yangtao Li via Linux-f2fs-devel
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 19:20 ` [f2fs-dev] [PATCH 1/4] f2fs: reset iostat_count in f2fs_reset_iostat() Jaegeuk Kim
2023-01-11 14:06   ` Chao Yu
2023-01-11 19:17     ` Jaegeuk Kim
2023-01-12 15:13       ` Yangtao Li via Linux-f2fs-devel
2023-01-12 23:59         ` Jaegeuk Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).