Loading fs/f2fs/debug.c +10 −5 Original line number Diff line number Diff line Loading @@ -265,11 +265,16 @@ static int stat_show(struct seq_file *s, void *v) seq_printf(s, "CP calls: %d\n", si->cp_count); seq_printf(s, "GC calls: %d (BG: %d)\n", si->call_count, si->bg_gc); seq_printf(s, " - data segments : %d\n", si->data_segs); seq_printf(s, " - node segments : %d\n", si->node_segs); seq_printf(s, "Try to move %d blocks\n", si->tot_blks); seq_printf(s, " - data blocks : %d\n", si->data_blks); seq_printf(s, " - node blocks : %d\n", si->node_blks); seq_printf(s, " - data segments : %d (%d)\n", si->data_segs, si->bg_data_segs); seq_printf(s, " - node segments : %d (%d)\n", si->node_segs, si->bg_node_segs); seq_printf(s, "Try to move %d blocks (BG: %d)\n", si->tot_blks, si->bg_data_blks + si->bg_node_blks); seq_printf(s, " - data blocks : %d (%d)\n", si->data_blks, si->bg_data_blks); seq_printf(s, " - node blocks : %d (%d)\n", si->node_blks, si->bg_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); Loading fs/f2fs/f2fs.h +15 −8 Original line number Diff line number Diff line Loading @@ -1634,7 +1634,9 @@ struct f2fs_stat_info { int dirty_count, node_pages, meta_pages; int prefree_count, call_count, cp_count; int tot_segs, node_segs, data_segs, free_segs, free_secs; int bg_node_segs, bg_data_segs; int tot_blks, data_blks, node_blks; int bg_data_blks, bg_node_blks; int curseg[NR_CURSEG_TYPE]; int cursec[NR_CURSEG_TYPE]; int curzone[NR_CURSEG_TYPE]; Loading Loading @@ -1683,31 +1685,36 @@ static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi) ((sbi)->block_count[(curseg)->alloc_type]++) #define stat_inc_inplace_blocks(sbi) \ (atomic_inc(&(sbi)->inplace_count)) #define stat_inc_seg_count(sbi, type) \ #define stat_inc_seg_count(sbi, type, gc_type) \ do { \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \ (si)->tot_segs++; \ if (type == SUM_TYPE_DATA) \ if (type == SUM_TYPE_DATA) { \ si->data_segs++; \ else \ si->bg_data_segs += (gc_type == BG_GC) ? 1 : 0; \ } else { \ si->node_segs++; \ si->bg_node_segs += (gc_type == BG_GC) ? 1 : 0; \ } \ } while (0) #define stat_inc_tot_blk_count(si, blks) \ (si->tot_blks += (blks)) #define stat_inc_data_blk_count(sbi, blks) \ #define stat_inc_data_blk_count(sbi, blks, gc_type) \ do { \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \ stat_inc_tot_blk_count(si, blks); \ si->data_blks += (blks); \ si->bg_data_blks += (gc_type == BG_GC) ? (blks) : 0; \ } while (0) #define stat_inc_node_blk_count(sbi, blks) \ #define stat_inc_node_blk_count(sbi, blks, gc_type) \ do { \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \ stat_inc_tot_blk_count(si, blks); \ si->node_blks += (blks); \ si->bg_node_blks += (gc_type == BG_GC) ? (blks) : 0; \ } while (0) int f2fs_build_stats(struct f2fs_sb_info *); Loading @@ -1729,10 +1736,10 @@ void f2fs_destroy_root_stats(void); #define stat_inc_seg_type(sbi, curseg) #define stat_inc_block_count(sbi, curseg) #define stat_inc_inplace_blocks(sbi) #define stat_inc_seg_count(si, type) #define stat_inc_seg_count(sbi, type, gc_type) #define stat_inc_tot_blk_count(si, blks) #define stat_inc_data_blk_count(si, blks) #define stat_inc_node_blk_count(sbi, blks) #define stat_inc_data_blk_count(sbi, blks, gc_type) #define stat_inc_node_blk_count(sbi, blks, gc_type) static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; } static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { } Loading fs/f2fs/gc.c +3 −3 Original line number Diff line number Diff line Loading @@ -435,7 +435,7 @@ static void gc_node_segment(struct f2fs_sb_info *sbi, set_page_dirty(node_page); } f2fs_put_page(node_page, 1); stat_inc_node_blk_count(sbi, 1); stat_inc_node_blk_count(sbi, 1, gc_type); } if (initial) { Loading Loading @@ -622,7 +622,7 @@ static void gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum, if (IS_ERR(data_page)) continue; move_data_page(inode, data_page, gc_type); stat_inc_data_blk_count(sbi, 1); stat_inc_data_blk_count(sbi, 1, gc_type); } } Loading Loading @@ -680,7 +680,7 @@ static void do_garbage_collect(struct f2fs_sb_info *sbi, unsigned int segno, } blk_finish_plug(&plug); stat_inc_seg_count(sbi, GET_SUM_TYPE((&sum->footer))); stat_inc_seg_count(sbi, GET_SUM_TYPE((&sum->footer)), gc_type); stat_inc_call_count(sbi->stat_info); f2fs_put_page(sum_page, 1); Loading Loading
fs/f2fs/debug.c +10 −5 Original line number Diff line number Diff line Loading @@ -265,11 +265,16 @@ static int stat_show(struct seq_file *s, void *v) seq_printf(s, "CP calls: %d\n", si->cp_count); seq_printf(s, "GC calls: %d (BG: %d)\n", si->call_count, si->bg_gc); seq_printf(s, " - data segments : %d\n", si->data_segs); seq_printf(s, " - node segments : %d\n", si->node_segs); seq_printf(s, "Try to move %d blocks\n", si->tot_blks); seq_printf(s, " - data blocks : %d\n", si->data_blks); seq_printf(s, " - node blocks : %d\n", si->node_blks); seq_printf(s, " - data segments : %d (%d)\n", si->data_segs, si->bg_data_segs); seq_printf(s, " - node segments : %d (%d)\n", si->node_segs, si->bg_node_segs); seq_printf(s, "Try to move %d blocks (BG: %d)\n", si->tot_blks, si->bg_data_blks + si->bg_node_blks); seq_printf(s, " - data blocks : %d (%d)\n", si->data_blks, si->bg_data_blks); seq_printf(s, " - node blocks : %d (%d)\n", si->node_blks, si->bg_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); Loading
fs/f2fs/f2fs.h +15 −8 Original line number Diff line number Diff line Loading @@ -1634,7 +1634,9 @@ struct f2fs_stat_info { int dirty_count, node_pages, meta_pages; int prefree_count, call_count, cp_count; int tot_segs, node_segs, data_segs, free_segs, free_secs; int bg_node_segs, bg_data_segs; int tot_blks, data_blks, node_blks; int bg_data_blks, bg_node_blks; int curseg[NR_CURSEG_TYPE]; int cursec[NR_CURSEG_TYPE]; int curzone[NR_CURSEG_TYPE]; Loading Loading @@ -1683,31 +1685,36 @@ static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi) ((sbi)->block_count[(curseg)->alloc_type]++) #define stat_inc_inplace_blocks(sbi) \ (atomic_inc(&(sbi)->inplace_count)) #define stat_inc_seg_count(sbi, type) \ #define stat_inc_seg_count(sbi, type, gc_type) \ do { \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \ (si)->tot_segs++; \ if (type == SUM_TYPE_DATA) \ if (type == SUM_TYPE_DATA) { \ si->data_segs++; \ else \ si->bg_data_segs += (gc_type == BG_GC) ? 1 : 0; \ } else { \ si->node_segs++; \ si->bg_node_segs += (gc_type == BG_GC) ? 1 : 0; \ } \ } while (0) #define stat_inc_tot_blk_count(si, blks) \ (si->tot_blks += (blks)) #define stat_inc_data_blk_count(sbi, blks) \ #define stat_inc_data_blk_count(sbi, blks, gc_type) \ do { \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \ stat_inc_tot_blk_count(si, blks); \ si->data_blks += (blks); \ si->bg_data_blks += (gc_type == BG_GC) ? (blks) : 0; \ } while (0) #define stat_inc_node_blk_count(sbi, blks) \ #define stat_inc_node_blk_count(sbi, blks, gc_type) \ do { \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \ stat_inc_tot_blk_count(si, blks); \ si->node_blks += (blks); \ si->bg_node_blks += (gc_type == BG_GC) ? (blks) : 0; \ } while (0) int f2fs_build_stats(struct f2fs_sb_info *); Loading @@ -1729,10 +1736,10 @@ void f2fs_destroy_root_stats(void); #define stat_inc_seg_type(sbi, curseg) #define stat_inc_block_count(sbi, curseg) #define stat_inc_inplace_blocks(sbi) #define stat_inc_seg_count(si, type) #define stat_inc_seg_count(sbi, type, gc_type) #define stat_inc_tot_blk_count(si, blks) #define stat_inc_data_blk_count(si, blks) #define stat_inc_node_blk_count(sbi, blks) #define stat_inc_data_blk_count(sbi, blks, gc_type) #define stat_inc_node_blk_count(sbi, blks, gc_type) static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; } static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { } Loading
fs/f2fs/gc.c +3 −3 Original line number Diff line number Diff line Loading @@ -435,7 +435,7 @@ static void gc_node_segment(struct f2fs_sb_info *sbi, set_page_dirty(node_page); } f2fs_put_page(node_page, 1); stat_inc_node_blk_count(sbi, 1); stat_inc_node_blk_count(sbi, 1, gc_type); } if (initial) { Loading Loading @@ -622,7 +622,7 @@ static void gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum, if (IS_ERR(data_page)) continue; move_data_page(inode, data_page, gc_type); stat_inc_data_blk_count(sbi, 1); stat_inc_data_blk_count(sbi, 1, gc_type); } } Loading Loading @@ -680,7 +680,7 @@ static void do_garbage_collect(struct f2fs_sb_info *sbi, unsigned int segno, } blk_finish_plug(&plug); stat_inc_seg_count(sbi, GET_SUM_TYPE((&sum->footer))); stat_inc_seg_count(sbi, GET_SUM_TYPE((&sum->footer)), gc_type); stat_inc_call_count(sbi->stat_info); f2fs_put_page(sum_page, 1); Loading