diff options
Diffstat (limited to 'fs/f2fs/debug.c')
-rw-r--r-- | fs/f2fs/debug.c | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c index fbd5184140d0..a77df377e2e8 100644 --- a/fs/f2fs/debug.c +++ b/fs/f2fs/debug.c | |||
@@ -50,8 +50,16 @@ static void update_general_status(struct f2fs_sb_info *sbi) | |||
50 | si->ndirty_files = sbi->ndirty_inode[FILE_INODE]; | 50 | si->ndirty_files = sbi->ndirty_inode[FILE_INODE]; |
51 | si->ndirty_all = sbi->ndirty_inode[DIRTY_META]; | 51 | si->ndirty_all = sbi->ndirty_inode[DIRTY_META]; |
52 | si->inmem_pages = get_pages(sbi, F2FS_INMEM_PAGES); | 52 | si->inmem_pages = get_pages(sbi, F2FS_INMEM_PAGES); |
53 | si->aw_cnt = atomic_read(&sbi->aw_cnt); | ||
54 | si->max_aw_cnt = atomic_read(&sbi->max_aw_cnt); | ||
53 | si->nr_wb_cp_data = get_pages(sbi, F2FS_WB_CP_DATA); | 55 | si->nr_wb_cp_data = get_pages(sbi, F2FS_WB_CP_DATA); |
54 | si->nr_wb_data = get_pages(sbi, F2FS_WB_DATA); | 56 | 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); | ||
55 | si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg; | 63 | si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg; |
56 | si->rsvd_segs = reserved_segments(sbi); | 64 | si->rsvd_segs = reserved_segments(sbi); |
57 | si->overp_segs = overprovision_segments(sbi); | 65 | si->overp_segs = overprovision_segments(sbi); |
@@ -62,6 +70,8 @@ static void update_general_status(struct f2fs_sb_info *sbi) | |||
62 | si->inline_xattr = atomic_read(&sbi->inline_xattr); | 70 | si->inline_xattr = atomic_read(&sbi->inline_xattr); |
63 | si->inline_inode = atomic_read(&sbi->inline_inode); | 71 | si->inline_inode = atomic_read(&sbi->inline_inode); |
64 | si->inline_dir = atomic_read(&sbi->inline_dir); | 72 | si->inline_dir = atomic_read(&sbi->inline_dir); |
73 | si->append = sbi->im[APPEND_INO].ino_num; | ||
74 | si->update = sbi->im[UPDATE_INO].ino_num; | ||
65 | si->orphans = sbi->im[ORPHAN_INO].ino_num; | 75 | si->orphans = sbi->im[ORPHAN_INO].ino_num; |
66 | si->utilization = utilization(sbi); | 76 | si->utilization = utilization(sbi); |
67 | 77 | ||
@@ -183,6 +193,9 @@ static void update_mem_info(struct f2fs_sb_info *sbi) | |||
183 | /* build nm */ | 193 | /* build nm */ |
184 | si->base_mem += sizeof(struct f2fs_nm_info); | 194 | si->base_mem += sizeof(struct f2fs_nm_info); |
185 | si->base_mem += __bitmap_size(sbi, NAT_BITMAP); | 195 | si->base_mem += __bitmap_size(sbi, NAT_BITMAP); |
196 | si->base_mem += (NM_I(sbi)->nat_bits_blocks << F2FS_BLKSIZE_BITS); | ||
197 | si->base_mem += NM_I(sbi)->nat_blocks * NAT_ENTRY_BITMAP_SIZE; | ||
198 | si->base_mem += NM_I(sbi)->nat_blocks / 8; | ||
186 | 199 | ||
187 | get_cache: | 200 | get_cache: |
188 | si->cache_mem = 0; | 201 | si->cache_mem = 0; |
@@ -192,8 +205,10 @@ get_cache: | |||
192 | si->cache_mem += sizeof(struct f2fs_gc_kthread); | 205 | si->cache_mem += sizeof(struct f2fs_gc_kthread); |
193 | 206 | ||
194 | /* build merge flush thread */ | 207 | /* build merge flush thread */ |
195 | if (SM_I(sbi)->cmd_control_info) | 208 | if (SM_I(sbi)->fcc_info) |
196 | si->cache_mem += sizeof(struct flush_cmd_control); | 209 | si->cache_mem += sizeof(struct flush_cmd_control); |
210 | if (SM_I(sbi)->dcc_info) | ||
211 | si->cache_mem += sizeof(struct discard_cmd_control); | ||
197 | 212 | ||
198 | /* free nids */ | 213 | /* free nids */ |
199 | si->cache_mem += (NM_I(sbi)->nid_cnt[FREE_NID_LIST] + | 214 | si->cache_mem += (NM_I(sbi)->nid_cnt[FREE_NID_LIST] + |
@@ -254,8 +269,8 @@ static int stat_show(struct seq_file *s, void *v) | |||
254 | si->inline_inode); | 269 | si->inline_inode); |
255 | seq_printf(s, " - Inline_dentry Inode: %u\n", | 270 | seq_printf(s, " - Inline_dentry Inode: %u\n", |
256 | si->inline_dir); | 271 | si->inline_dir); |
257 | seq_printf(s, " - Orphan Inode: %u\n", | 272 | seq_printf(s, " - Orphan/Append/Update Inode: %u, %u, %u\n", |
258 | si->orphans); | 273 | si->orphans, si->append, si->update); |
259 | seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n", | 274 | seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n", |
260 | si->main_area_segs, si->main_area_sections, | 275 | si->main_area_segs, si->main_area_sections, |
261 | si->main_area_zones); | 276 | si->main_area_zones); |
@@ -314,8 +329,11 @@ static int stat_show(struct seq_file *s, void *v) | |||
314 | seq_printf(s, " - Inner Struct Count: tree: %d(%d), node: %d\n", | 329 | seq_printf(s, " - Inner Struct Count: tree: %d(%d), node: %d\n", |
315 | si->ext_tree, si->zombie_tree, si->ext_node); | 330 | si->ext_tree, si->zombie_tree, si->ext_node); |
316 | seq_puts(s, "\nBalancing F2FS Async:\n"); | 331 | seq_puts(s, "\nBalancing F2FS Async:\n"); |
317 | seq_printf(s, " - inmem: %4d, wb_cp_data: %4d, wb_data: %4d\n", | 332 | seq_printf(s, " - IO (CP: %4d, Data: %4d, Flush: %4d, Discard: %4d)\n", |
318 | si->inmem_pages, si->nr_wb_cp_data, si->nr_wb_data); | 333 | si->nr_wb_cp_data, si->nr_wb_data, |
334 | si->nr_flush, si->nr_discard); | ||
335 | seq_printf(s, " - inmem: %4d, atomic IO: %4d (Max. %4d)\n", | ||
336 | si->inmem_pages, si->aw_cnt, si->max_aw_cnt); | ||
319 | seq_printf(s, " - nodes: %4d in %4d\n", | 337 | seq_printf(s, " - nodes: %4d in %4d\n", |
320 | si->ndirty_node, si->node_pages); | 338 | si->ndirty_node, si->node_pages); |
321 | seq_printf(s, " - dents: %4d in dirs:%4d (%4d)\n", | 339 | seq_printf(s, " - dents: %4d in dirs:%4d (%4d)\n", |
@@ -414,6 +432,9 @@ int f2fs_build_stats(struct f2fs_sb_info *sbi) | |||
414 | atomic_set(&sbi->inline_dir, 0); | 432 | atomic_set(&sbi->inline_dir, 0); |
415 | atomic_set(&sbi->inplace_count, 0); | 433 | atomic_set(&sbi->inplace_count, 0); |
416 | 434 | ||
435 | atomic_set(&sbi->aw_cnt, 0); | ||
436 | atomic_set(&sbi->max_aw_cnt, 0); | ||
437 | |||
417 | mutex_lock(&f2fs_stat_mutex); | 438 | mutex_lock(&f2fs_stat_mutex); |
418 | list_add_tail(&si->stat_list, &f2fs_stat_list); | 439 | list_add_tail(&si->stat_list, &f2fs_stat_list); |
419 | mutex_unlock(&f2fs_stat_mutex); | 440 | mutex_unlock(&f2fs_stat_mutex); |