lkml.org 
[lkml]   [2023]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] f2fs: including waf data in f2fs status information
From
Date
When evaluating in f2fs, it takes much time to obtain waf data.
This patch helps to obtain waf data without calcluation.

Signed-off-by: Beomsu Kim <beomsu7.kim@samsung.com>
---
fs/f2fs/iostat.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c
index 3d5bfb1ad585..6ae9659d69e7 100644
--- a/fs/f2fs/iostat.c
+++ b/fs/f2fs/iostat.c
@@ -34,10 +34,22 @@ 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);
+ struct f2fs_stat_info *si = F2FS_STAT(sbi);
+ int j;
+ unsigned long long waf = 0;
+ unsigned long long data_written_to_storage = 0, data_written_by_user = 0;

if (!sbi->iostat_enable)
return 0;

+ for (j = FS_DATA_IO; j <= FS_CP_META_IO; j++)
+ data_written_to_storage += si->sbi->iostat_bytes[j];
+ for (j = FS_DATA_IO; j <= FS_CDATA_IO; j++)
+ data_written_by_user += si->sbi->iostat_bytes[j];
+
+ if (data_written_by_user > 0)
+ waf = data_written_to_storage * 100 / data_written_by_user;
+
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");
@@ -81,6 +93,10 @@ int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset)
IOSTAT_INFO_SHOW("fs discard", FS_DISCARD_IO);
IOSTAT_INFO_SHOW("fs flush", FS_FLUSH_IO);

+ /* print waf */
+ seq_puts(seq, "[WAF]\n");
+ seq_printf(seq, "fs waf: %llu.%02llu\n", waf / 100, waf % 100);
+
return 0;
}

--
2.17.1
\
 
 \ /
  Last update: 2023-05-31 10:21    [W:3.838 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site