aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/f2fs/debug.c')
-rw-r--r--fs/f2fs/debug.c15
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
174static int stat_show(struct seq_file *s, void *v) 178static 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);