]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
f2fs: show extent tree, node stat info in debugfs
authorChao Yu <chao2.yu@samsung.com>
Thu, 5 Feb 2015 09:58:28 +0000 (17:58 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 3 Mar 2015 17:58:47 +0000 (09:58 -0800)
This patch add and show stat info of total memory footprint for extent tree,node
in debugfs.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/debug.c
fs/f2fs/f2fs.h

index e671373cc8ab89610a9d000e5e689fb698b95f0e..1006290ed6b89d5d4f19831115270f17d02581d4 100644 (file)
@@ -35,6 +35,8 @@ static void update_general_status(struct f2fs_sb_info *sbi)
        /* validation check of the segment numbers */
        si->hit_ext = sbi->read_hit_ext;
        si->total_ext = sbi->total_hit_ext;
+       si->ext_tree = sbi->total_ext_tree;
+       si->ext_node = atomic_read(&sbi->total_ext_node);
        si->ndirty_node = get_pages(sbi, F2FS_DIRTY_NODES);
        si->ndirty_dent = get_pages(sbi, F2FS_DIRTY_DENTS);
        si->ndirty_dirs = sbi->n_dirty_dirs;
@@ -185,6 +187,9 @@ get_cache:
        si->cache_mem += sbi->n_dirty_dirs * sizeof(struct inode_entry);
        for (i = 0; i <= UPDATE_INO; i++)
                si->cache_mem += sbi->im[i].ino_num * sizeof(struct ino_entry);
+       si->cache_mem += sbi->total_ext_tree * sizeof(struct extent_tree);
+       si->cache_mem += atomic_read(&sbi->total_ext_node) *
+                                               sizeof(struct extent_node);
 
        si->page_mem = 0;
        npages = NODE_MAPPING(sbi)->nrpages;
@@ -267,6 +272,8 @@ static int stat_show(struct seq_file *s, void *v)
                seq_printf(s, "  - node blocks : %d\n", si->node_blks);
                seq_printf(s, "\nExtent Hit Ratio: %d / %d\n",
                           si->hit_ext, si->total_ext);
+               seq_printf(s, "\nExtent Tree Count: %d\n", si->ext_tree);
+               seq_printf(s, "\nExtent Node Count: %d\n", si->ext_node);
                seq_puts(s, "\nBalancing F2FS Async:\n");
                seq_printf(s, "  - inmem: %4d, wb: %4d\n",
                           si->inmem_pages, si->wb_pages);
index 759fbaaa6ca1f3e51bd29f9ed55419f1c45f1234..85ce9b30b539266a2bf9eb4b2133b10eaa776897 100644 (file)
@@ -1607,7 +1607,7 @@ struct f2fs_stat_info {
        struct f2fs_sb_info *sbi;
        int all_area_segs, sit_area_segs, nat_area_segs, ssa_area_segs;
        int main_area_segs, main_area_sections, main_area_zones;
-       int hit_ext, total_ext;
+       int hit_ext, total_ext, ext_tree, ext_node;
        int ndirty_node, ndirty_dent, ndirty_dirs, ndirty_meta;
        int nats, dirty_nats, sits, dirty_sits, fnids;
        int total_count, utilization;