diff options
Diffstat (limited to 'fs/f2fs/debug.c')
-rw-r--r-- | fs/f2fs/debug.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c index 0a91ab813a9e..91e8f699ab30 100644 --- a/fs/f2fs/debug.c +++ b/fs/f2fs/debug.c | |||
@@ -39,13 +39,15 @@ static void update_general_status(struct f2fs_sb_info *sbi) | |||
39 | si->ndirty_dent = get_pages(sbi, F2FS_DIRTY_DENTS); | 39 | si->ndirty_dent = get_pages(sbi, F2FS_DIRTY_DENTS); |
40 | si->ndirty_dirs = sbi->n_dirty_dirs; | 40 | si->ndirty_dirs = sbi->n_dirty_dirs; |
41 | si->ndirty_meta = get_pages(sbi, F2FS_DIRTY_META); | 41 | si->ndirty_meta = get_pages(sbi, F2FS_DIRTY_META); |
42 | si->inmem_pages = get_pages(sbi, F2FS_INMEM_PAGES); | ||
42 | si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg; | 43 | si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg; |
43 | si->rsvd_segs = reserved_segments(sbi); | 44 | si->rsvd_segs = reserved_segments(sbi); |
44 | si->overp_segs = overprovision_segments(sbi); | 45 | si->overp_segs = overprovision_segments(sbi); |
45 | si->valid_count = valid_user_blocks(sbi); | 46 | si->valid_count = valid_user_blocks(sbi); |
46 | si->valid_node_count = valid_node_count(sbi); | 47 | si->valid_node_count = valid_node_count(sbi); |
47 | si->valid_inode_count = valid_inode_count(sbi); | 48 | si->valid_inode_count = valid_inode_count(sbi); |
48 | si->inline_inode = sbi->inline_inode; | 49 | si->inline_inode = atomic_read(&sbi->inline_inode); |
50 | si->inline_dir = atomic_read(&sbi->inline_dir); | ||
49 | si->utilization = utilization(sbi); | 51 | si->utilization = utilization(sbi); |
50 | 52 | ||
51 | si->free_segs = free_segments(sbi); | 53 | si->free_segs = free_segments(sbi); |
@@ -118,6 +120,7 @@ static void update_mem_info(struct f2fs_sb_info *sbi) | |||
118 | { | 120 | { |
119 | struct f2fs_stat_info *si = F2FS_STAT(sbi); | 121 | struct f2fs_stat_info *si = F2FS_STAT(sbi); |
120 | unsigned npages; | 122 | unsigned npages; |
123 | int i; | ||
121 | 124 | ||
122 | if (si->base_mem) | 125 | if (si->base_mem) |
123 | goto get_cache; | 126 | goto get_cache; |
@@ -167,8 +170,9 @@ get_cache: | |||
167 | si->cache_mem += npages << PAGE_CACHE_SHIFT; | 170 | si->cache_mem += npages << PAGE_CACHE_SHIFT; |
168 | npages = META_MAPPING(sbi)->nrpages; | 171 | npages = META_MAPPING(sbi)->nrpages; |
169 | si->cache_mem += npages << PAGE_CACHE_SHIFT; | 172 | si->cache_mem += npages << PAGE_CACHE_SHIFT; |
170 | si->cache_mem += sbi->n_orphans * sizeof(struct ino_entry); | ||
171 | si->cache_mem += sbi->n_dirty_dirs * sizeof(struct dir_inode_entry); | 173 | si->cache_mem += sbi->n_dirty_dirs * sizeof(struct dir_inode_entry); |
174 | for (i = 0; i <= UPDATE_INO; i++) | ||
175 | si->cache_mem += sbi->im[i].ino_num * sizeof(struct ino_entry); | ||
172 | } | 176 | } |
173 | 177 | ||
174 | static int stat_show(struct seq_file *s, void *v) | 178 | static int stat_show(struct seq_file *s, void *v) |
@@ -200,6 +204,8 @@ static int stat_show(struct seq_file *s, void *v) | |||
200 | si->valid_count - si->valid_node_count); | 204 | si->valid_count - si->valid_node_count); |
201 | seq_printf(s, " - Inline_data Inode: %u\n", | 205 | seq_printf(s, " - Inline_data Inode: %u\n", |
202 | si->inline_inode); | 206 | si->inline_inode); |
207 | seq_printf(s, " - Inline_dentry Inode: %u\n", | ||
208 | si->inline_dir); | ||
203 | seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n", | 209 | seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n", |
204 | si->main_area_segs, si->main_area_sections, | 210 | si->main_area_segs, si->main_area_sections, |
205 | si->main_area_zones); | 211 | si->main_area_zones); |
@@ -244,6 +250,8 @@ static int stat_show(struct seq_file *s, void *v) | |||
244 | seq_printf(s, "\nExtent Hit Ratio: %d / %d\n", | 250 | seq_printf(s, "\nExtent Hit Ratio: %d / %d\n", |
245 | si->hit_ext, si->total_ext); | 251 | si->hit_ext, si->total_ext); |
246 | seq_puts(s, "\nBalancing F2FS Async:\n"); | 252 | seq_puts(s, "\nBalancing F2FS Async:\n"); |
253 | seq_printf(s, " - inmem: %4d\n", | ||
254 | si->inmem_pages); | ||
247 | seq_printf(s, " - nodes: %4d in %4d\n", | 255 | seq_printf(s, " - nodes: %4d in %4d\n", |
248 | si->ndirty_node, si->node_pages); | 256 | si->ndirty_node, si->node_pages); |
249 | seq_printf(s, " - dents: %4d in dirs:%4d\n", | 257 | seq_printf(s, " - dents: %4d in dirs:%4d\n", |
@@ -321,6 +329,9 @@ int f2fs_build_stats(struct f2fs_sb_info *sbi) | |||
321 | si->sbi = sbi; | 329 | si->sbi = sbi; |
322 | sbi->stat_info = si; | 330 | sbi->stat_info = si; |
323 | 331 | ||
332 | atomic_set(&sbi->inline_inode, 0); | ||
333 | atomic_set(&sbi->inline_dir, 0); | ||
334 | |||
324 | mutex_lock(&f2fs_stat_mutex); | 335 | mutex_lock(&f2fs_stat_mutex); |
325 | list_add_tail(&si->stat_list, &f2fs_stat_list); | 336 | list_add_tail(&si->stat_list, &f2fs_stat_list); |
326 | mutex_unlock(&f2fs_stat_mutex); | 337 | mutex_unlock(&f2fs_stat_mutex); |