debug.c (c829a33253e018472335b02e6d8bb1bb4213a142) | debug.c (8b8dd65f72ccbf7111eb97c4c4f5b5df2a412a07) |
---|---|
1/* 2 * f2fs debugging statistics 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * Copyright (c) 2012 Linux Foundation 7 * Copyright (c) 2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org> 8 * --- 37 unchanged lines hidden (view full) --- 46 si->ndirty_meta = get_pages(sbi, F2FS_DIRTY_META); 47 si->ndirty_data = get_pages(sbi, F2FS_DIRTY_DATA); 48 si->ndirty_imeta = get_pages(sbi, F2FS_DIRTY_IMETA); 49 si->ndirty_dirs = sbi->ndirty_inode[DIR_INODE]; 50 si->ndirty_files = sbi->ndirty_inode[FILE_INODE]; 51 si->ndirty_all = sbi->ndirty_inode[DIRTY_META]; 52 si->inmem_pages = get_pages(sbi, F2FS_INMEM_PAGES); 53 si->aw_cnt = atomic_read(&sbi->aw_cnt); | 1/* 2 * f2fs debugging statistics 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * Copyright (c) 2012 Linux Foundation 7 * Copyright (c) 2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org> 8 * --- 37 unchanged lines hidden (view full) --- 46 si->ndirty_meta = get_pages(sbi, F2FS_DIRTY_META); 47 si->ndirty_data = get_pages(sbi, F2FS_DIRTY_DATA); 48 si->ndirty_imeta = get_pages(sbi, F2FS_DIRTY_IMETA); 49 si->ndirty_dirs = sbi->ndirty_inode[DIR_INODE]; 50 si->ndirty_files = sbi->ndirty_inode[FILE_INODE]; 51 si->ndirty_all = sbi->ndirty_inode[DIRTY_META]; 52 si->inmem_pages = get_pages(sbi, F2FS_INMEM_PAGES); 53 si->aw_cnt = atomic_read(&sbi->aw_cnt); |
54 si->vw_cnt = atomic_read(&sbi->vw_cnt); |
|
54 si->max_aw_cnt = atomic_read(&sbi->max_aw_cnt); | 55 si->max_aw_cnt = atomic_read(&sbi->max_aw_cnt); |
56 si->max_vw_cnt = atomic_read(&sbi->max_vw_cnt); |
|
55 si->nr_wb_cp_data = get_pages(sbi, F2FS_WB_CP_DATA); 56 si->nr_wb_data = get_pages(sbi, F2FS_WB_DATA); | 57 si->nr_wb_cp_data = get_pages(sbi, F2FS_WB_CP_DATA); 58 si->nr_wb_data = get_pages(sbi, F2FS_WB_DATA); |
57 if (SM_I(sbi) && SM_I(sbi)->fcc_info) 58 si->nr_flush = 59 atomic_read(&SM_I(sbi)->fcc_info->submit_flush); 60 if (SM_I(sbi) && SM_I(sbi)->dcc_info) 61 si->nr_discard = 62 atomic_read(&SM_I(sbi)->dcc_info->submit_discard); | 59 if (SM_I(sbi) && SM_I(sbi)->fcc_info) { 60 si->nr_flushed = 61 atomic_read(&SM_I(sbi)->fcc_info->issued_flush); 62 si->nr_flushing = 63 atomic_read(&SM_I(sbi)->fcc_info->issing_flush); 64 } 65 if (SM_I(sbi) && SM_I(sbi)->dcc_info) { 66 si->nr_discarded = 67 atomic_read(&SM_I(sbi)->dcc_info->issued_discard); 68 si->nr_discarding = 69 atomic_read(&SM_I(sbi)->dcc_info->issing_discard); 70 } |
63 si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg; 64 si->rsvd_segs = reserved_segments(sbi); 65 si->overp_segs = overprovision_segments(sbi); 66 si->valid_count = valid_user_blocks(sbi); 67 si->discard_blks = discard_blocks(sbi); 68 si->valid_node_count = valid_node_count(sbi); 69 si->valid_inode_count = valid_inode_count(sbi); 70 si->inline_xattr = atomic_read(&sbi->inline_xattr); --- 80 unchanged lines hidden (view full) --- 151{ 152 struct f2fs_stat_info *si = F2FS_STAT(sbi); 153 unsigned npages; 154 int i; 155 156 if (si->base_mem) 157 goto get_cache; 158 | 71 si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg; 72 si->rsvd_segs = reserved_segments(sbi); 73 si->overp_segs = overprovision_segments(sbi); 74 si->valid_count = valid_user_blocks(sbi); 75 si->discard_blks = discard_blocks(sbi); 76 si->valid_node_count = valid_node_count(sbi); 77 si->valid_inode_count = valid_inode_count(sbi); 78 si->inline_xattr = atomic_read(&sbi->inline_xattr); --- 80 unchanged lines hidden (view full) --- 159{ 160 struct f2fs_stat_info *si = F2FS_STAT(sbi); 161 unsigned npages; 162 int i; 163 164 if (si->base_mem) 165 goto get_cache; 166 |
159 si->base_mem = sizeof(struct f2fs_sb_info) + sbi->sb->s_blocksize; | 167 /* build stat */ 168 si->base_mem = sizeof(struct f2fs_stat_info); 169 170 /* build superblock */ 171 si->base_mem += sizeof(struct f2fs_sb_info) + sbi->sb->s_blocksize; |
160 si->base_mem += 2 * sizeof(struct f2fs_inode_info); 161 si->base_mem += sizeof(*sbi->ckpt); 162 si->base_mem += sizeof(struct percpu_counter) * NR_COUNT_TYPE; 163 164 /* build sm */ 165 si->base_mem += sizeof(struct f2fs_sm_info); 166 167 /* build sit */ --- 157 unchanged lines hidden (view full) --- 325 si->hit_rbtree); 326 seq_printf(s, " - Hit Ratio: %llu%% (%llu / %llu)\n", 327 !si->total_ext ? 0 : 328 div64_u64(si->hit_total * 100, si->total_ext), 329 si->hit_total, si->total_ext); 330 seq_printf(s, " - Inner Struct Count: tree: %d(%d), node: %d\n", 331 si->ext_tree, si->zombie_tree, si->ext_node); 332 seq_puts(s, "\nBalancing F2FS Async:\n"); | 172 si->base_mem += 2 * sizeof(struct f2fs_inode_info); 173 si->base_mem += sizeof(*sbi->ckpt); 174 si->base_mem += sizeof(struct percpu_counter) * NR_COUNT_TYPE; 175 176 /* build sm */ 177 si->base_mem += sizeof(struct f2fs_sm_info); 178 179 /* build sit */ --- 157 unchanged lines hidden (view full) --- 337 si->hit_rbtree); 338 seq_printf(s, " - Hit Ratio: %llu%% (%llu / %llu)\n", 339 !si->total_ext ? 0 : 340 div64_u64(si->hit_total * 100, si->total_ext), 341 si->hit_total, si->total_ext); 342 seq_printf(s, " - Inner Struct Count: tree: %d(%d), node: %d\n", 343 si->ext_tree, si->zombie_tree, si->ext_node); 344 seq_puts(s, "\nBalancing F2FS Async:\n"); |
333 seq_printf(s, " - IO (CP: %4d, Data: %4d, Flush: %4d, Discard: %4d)\n", | 345 seq_printf(s, " - IO (CP: %4d, Data: %4d, Flush: (%4d %4d), " 346 "Discard: (%4d %4d))\n", |
334 si->nr_wb_cp_data, si->nr_wb_data, | 347 si->nr_wb_cp_data, si->nr_wb_data, |
335 si->nr_flush, si->nr_discard); 336 seq_printf(s, " - inmem: %4d, atomic IO: %4d (Max. %4d)\n", 337 si->inmem_pages, si->aw_cnt, si->max_aw_cnt); | 348 si->nr_flushing, si->nr_flushed, 349 si->nr_discarding, si->nr_discarded); 350 seq_printf(s, " - inmem: %4d, atomic IO: %4d (Max. %4d), " 351 "volatile IO: %4d (Max. %4d)\n", 352 si->inmem_pages, si->aw_cnt, si->max_aw_cnt, 353 si->vw_cnt, si->max_vw_cnt); |
338 seq_printf(s, " - nodes: %4d in %4d\n", 339 si->ndirty_node, si->node_pages); 340 seq_printf(s, " - dents: %4d in dirs:%4d (%4d)\n", 341 si->ndirty_dent, si->ndirty_dirs, si->ndirty_all); 342 seq_printf(s, " - datas: %4d in files:%4d\n", 343 si->ndirty_data, si->ndirty_files); 344 seq_printf(s, " - meta: %4d in %4d\n", 345 si->ndirty_meta, si->meta_pages); --- 83 unchanged lines hidden (view full) --- 429 atomic64_set(&sbi->read_hit_cached, 0); 430 431 atomic_set(&sbi->inline_xattr, 0); 432 atomic_set(&sbi->inline_inode, 0); 433 atomic_set(&sbi->inline_dir, 0); 434 atomic_set(&sbi->inplace_count, 0); 435 436 atomic_set(&sbi->aw_cnt, 0); | 354 seq_printf(s, " - nodes: %4d in %4d\n", 355 si->ndirty_node, si->node_pages); 356 seq_printf(s, " - dents: %4d in dirs:%4d (%4d)\n", 357 si->ndirty_dent, si->ndirty_dirs, si->ndirty_all); 358 seq_printf(s, " - datas: %4d in files:%4d\n", 359 si->ndirty_data, si->ndirty_files); 360 seq_printf(s, " - meta: %4d in %4d\n", 361 si->ndirty_meta, si->meta_pages); --- 83 unchanged lines hidden (view full) --- 445 atomic64_set(&sbi->read_hit_cached, 0); 446 447 atomic_set(&sbi->inline_xattr, 0); 448 atomic_set(&sbi->inline_inode, 0); 449 atomic_set(&sbi->inline_dir, 0); 450 atomic_set(&sbi->inplace_count, 0); 451 452 atomic_set(&sbi->aw_cnt, 0); |
453 atomic_set(&sbi->vw_cnt, 0); |
|
437 atomic_set(&sbi->max_aw_cnt, 0); | 454 atomic_set(&sbi->max_aw_cnt, 0); |
455 atomic_set(&sbi->max_vw_cnt, 0); |
|
438 439 mutex_lock(&f2fs_stat_mutex); 440 list_add_tail(&si->stat_list, &f2fs_stat_list); 441 mutex_unlock(&f2fs_stat_mutex); 442 443 return 0; 444} 445 --- 38 unchanged lines hidden --- | 456 457 mutex_lock(&f2fs_stat_mutex); 458 list_add_tail(&si->stat_list, &f2fs_stat_list); 459 mutex_unlock(&f2fs_stat_mutex); 460 461 return 0; 462} 463 --- 38 unchanged lines hidden --- |