debug.c (8dd06ef34b6e2f41b29fbf5fc1663780f2524285) debug.c (0759e2c151f47b1362b15d544aca903d4ed74f88)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * f2fs debugging statistics
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 * Copyright (c) 2012 Linux Foundation
8 * Copyright (c) 2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

--- 160 unchanged lines hidden (view full) ---

169 si->curseg[i] = curseg->segno;
170 si->cursec[i] = GET_SEC_FROM_SEG(sbi, curseg->segno);
171 si->curzone[i] = GET_ZONE_FROM_SEC(sbi, si->cursec[i]);
172 }
173
174 for (i = META_CP; i < META_MAX; i++)
175 si->meta_count[i] = atomic_read(&sbi->meta_count[i]);
176
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * f2fs debugging statistics
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 * Copyright (c) 2012 Linux Foundation
8 * Copyright (c) 2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

--- 160 unchanged lines hidden (view full) ---

169 si->curseg[i] = curseg->segno;
170 si->cursec[i] = GET_SEC_FROM_SEG(sbi, curseg->segno);
171 si->curzone[i] = GET_ZONE_FROM_SEC(sbi, si->cursec[i]);
172 }
173
174 for (i = META_CP; i < META_MAX; i++)
175 si->meta_count[i] = atomic_read(&sbi->meta_count[i]);
176
177 for (i = 0; i < NO_CHECK_TYPE; i++) {
178 si->dirty_seg[i] = 0;
179 si->full_seg[i] = 0;
180 si->valid_blks[i] = 0;
181 }
182
183 for (i = 0; i < MAIN_SEGS(sbi); i++) {
184 int blks = get_seg_entry(sbi, i)->valid_blocks;
185 int type = get_seg_entry(sbi, i)->type;
186
187 if (!blks)
188 continue;
189
190 if (blks == sbi->blocks_per_seg)
191 si->full_seg[type]++;
192 else
193 si->dirty_seg[type]++;
194 si->valid_blks[type] += blks;
195 }
196
177 for (i = 0; i < 2; i++) {
178 si->segment_count[i] = sbi->segment_count[i];
179 si->block_count[i] = sbi->block_count[i];
180 }
181
182 si->inplace_count = atomic_read(&sbi->inplace_count);
183}
184

--- 111 unchanged lines hidden (view full) ---

296 is_set_ckpt_flags(si->sbi, CP_DISABLED_FLAG) ?
297 "Disabled": (f2fs_cp_error(si->sbi) ? "Error": "Good"));
298 seq_printf(s, "[SB: 1] [CP: 2] [SIT: %d] [NAT: %d] ",
299 si->sit_area_segs, si->nat_area_segs);
300 seq_printf(s, "[SSA: %d] [MAIN: %d",
301 si->ssa_area_segs, si->main_area_segs);
302 seq_printf(s, "(OverProv:%d Resv:%d)]\n\n",
303 si->overp_segs, si->rsvd_segs);
197 for (i = 0; i < 2; i++) {
198 si->segment_count[i] = sbi->segment_count[i];
199 si->block_count[i] = sbi->block_count[i];
200 }
201
202 si->inplace_count = atomic_read(&sbi->inplace_count);
203}
204

--- 111 unchanged lines hidden (view full) ---

316 is_set_ckpt_flags(si->sbi, CP_DISABLED_FLAG) ?
317 "Disabled": (f2fs_cp_error(si->sbi) ? "Error": "Good"));
318 seq_printf(s, "[SB: 1] [CP: 2] [SIT: %d] [NAT: %d] ",
319 si->sit_area_segs, si->nat_area_segs);
320 seq_printf(s, "[SSA: %d] [MAIN: %d",
321 si->ssa_area_segs, si->main_area_segs);
322 seq_printf(s, "(OverProv:%d Resv:%d)]\n\n",
323 si->overp_segs, si->rsvd_segs);
324 seq_printf(s, "Current Time Sec: %llu / Mounted Time Sec: %llu\n\n",
325 ktime_get_boottime_seconds(),
326 SIT_I(si->sbi)->mounted_time);
304 if (test_opt(si->sbi, DISCARD))
305 seq_printf(s, "Utilization: %u%% (%u valid blocks, %u discard blocks)\n",
306 si->utilization, si->valid_count, si->discard_blks);
307 else
308 seq_printf(s, "Utilization: %u%% (%u valid blocks)\n",
309 si->utilization, si->valid_count);
310
311 seq_printf(s, " - Node: %u (Inode: %u, ",

--- 9 unchanged lines hidden (view full) ---

321 si->inline_dir);
322 seq_printf(s, " - Compressed Inode: %u, Blocks: %u\n",
323 si->compr_inode, si->compr_blocks);
324 seq_printf(s, " - Orphan/Append/Update Inode: %u, %u, %u\n",
325 si->orphans, si->append, si->update);
326 seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n",
327 si->main_area_segs, si->main_area_sections,
328 si->main_area_zones);
327 if (test_opt(si->sbi, DISCARD))
328 seq_printf(s, "Utilization: %u%% (%u valid blocks, %u discard blocks)\n",
329 si->utilization, si->valid_count, si->discard_blks);
330 else
331 seq_printf(s, "Utilization: %u%% (%u valid blocks)\n",
332 si->utilization, si->valid_count);
333
334 seq_printf(s, " - Node: %u (Inode: %u, ",

--- 9 unchanged lines hidden (view full) ---

344 si->inline_dir);
345 seq_printf(s, " - Compressed Inode: %u, Blocks: %u\n",
346 si->compr_inode, si->compr_blocks);
347 seq_printf(s, " - Orphan/Append/Update Inode: %u, %u, %u\n",
348 si->orphans, si->append, si->update);
349 seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n",
350 si->main_area_segs, si->main_area_sections,
351 si->main_area_zones);
329 seq_printf(s, " - COLD data: %d, %d, %d\n",
352 seq_printf(s, " TYPE %8s %8s %8s %10s %10s %10s\n",
353 "segno", "secno", "zoneno", "dirty_seg", "full_seg", "valid_blk");
354 seq_printf(s, " - COLD data: %8d %8d %8d %10u %10u %10u\n",
330 si->curseg[CURSEG_COLD_DATA],
331 si->cursec[CURSEG_COLD_DATA],
355 si->curseg[CURSEG_COLD_DATA],
356 si->cursec[CURSEG_COLD_DATA],
332 si->curzone[CURSEG_COLD_DATA]);
333 seq_printf(s, " - WARM data: %d, %d, %d\n",
357 si->curzone[CURSEG_COLD_DATA],
358 si->dirty_seg[CURSEG_COLD_DATA],
359 si->full_seg[CURSEG_COLD_DATA],
360 si->valid_blks[CURSEG_COLD_DATA]);
361 seq_printf(s, " - WARM data: %8d %8d %8d %10u %10u %10u\n",
334 si->curseg[CURSEG_WARM_DATA],
335 si->cursec[CURSEG_WARM_DATA],
362 si->curseg[CURSEG_WARM_DATA],
363 si->cursec[CURSEG_WARM_DATA],
336 si->curzone[CURSEG_WARM_DATA]);
337 seq_printf(s, " - HOT data: %d, %d, %d\n",
364 si->curzone[CURSEG_WARM_DATA],
365 si->dirty_seg[CURSEG_WARM_DATA],
366 si->full_seg[CURSEG_WARM_DATA],
367 si->valid_blks[CURSEG_WARM_DATA]);
368 seq_printf(s, " - HOT data: %8d %8d %8d %10u %10u %10u\n",
338 si->curseg[CURSEG_HOT_DATA],
339 si->cursec[CURSEG_HOT_DATA],
369 si->curseg[CURSEG_HOT_DATA],
370 si->cursec[CURSEG_HOT_DATA],
340 si->curzone[CURSEG_HOT_DATA]);
341 seq_printf(s, " - Dir dnode: %d, %d, %d\n",
371 si->curzone[CURSEG_HOT_DATA],
372 si->dirty_seg[CURSEG_HOT_DATA],
373 si->full_seg[CURSEG_HOT_DATA],
374 si->valid_blks[CURSEG_HOT_DATA]);
375 seq_printf(s, " - Dir dnode: %8d %8d %8d %10u %10u %10u\n",
342 si->curseg[CURSEG_HOT_NODE],
343 si->cursec[CURSEG_HOT_NODE],
376 si->curseg[CURSEG_HOT_NODE],
377 si->cursec[CURSEG_HOT_NODE],
344 si->curzone[CURSEG_HOT_NODE]);
345 seq_printf(s, " - File dnode: %d, %d, %d\n",
378 si->curzone[CURSEG_HOT_NODE],
379 si->dirty_seg[CURSEG_HOT_NODE],
380 si->full_seg[CURSEG_HOT_NODE],
381 si->valid_blks[CURSEG_HOT_NODE]);
382 seq_printf(s, " - File dnode: %8d %8d %8d %10u %10u %10u\n",
346 si->curseg[CURSEG_WARM_NODE],
347 si->cursec[CURSEG_WARM_NODE],
383 si->curseg[CURSEG_WARM_NODE],
384 si->cursec[CURSEG_WARM_NODE],
348 si->curzone[CURSEG_WARM_NODE]);
349 seq_printf(s, " - Indir nodes: %d, %d, %d\n",
385 si->curzone[CURSEG_WARM_NODE],
386 si->dirty_seg[CURSEG_WARM_NODE],
387 si->full_seg[CURSEG_WARM_NODE],
388 si->valid_blks[CURSEG_WARM_NODE]);
389 seq_printf(s, " - Indir nodes: %8d %8d %8d %10u %10u %10u\n",
350 si->curseg[CURSEG_COLD_NODE],
351 si->cursec[CURSEG_COLD_NODE],
390 si->curseg[CURSEG_COLD_NODE],
391 si->cursec[CURSEG_COLD_NODE],
352 si->curzone[CURSEG_COLD_NODE]);
392 si->curzone[CURSEG_COLD_NODE],
393 si->dirty_seg[CURSEG_COLD_NODE],
394 si->full_seg[CURSEG_COLD_NODE],
395 si->valid_blks[CURSEG_COLD_NODE]);
353 seq_printf(s, "\n - Valid: %d\n - Dirty: %d\n",
354 si->main_area_segs - si->dirty_count -
355 si->prefree_count - si->free_segs,
356 si->dirty_count);
357 seq_printf(s, " - Prefree: %d\n - Free: %d (%d)\n\n",
358 si->prefree_count, si->free_segs, si->free_secs);
359 seq_printf(s, "CP calls: %d (BG: %d)\n",
360 si->cp_count, si->bg_cp_count);

--- 185 unchanged lines hidden ---
396 seq_printf(s, "\n - Valid: %d\n - Dirty: %d\n",
397 si->main_area_segs - si->dirty_count -
398 si->prefree_count - si->free_segs,
399 si->dirty_count);
400 seq_printf(s, " - Prefree: %d\n - Free: %d (%d)\n\n",
401 si->prefree_count, si->free_segs, si->free_secs);
402 seq_printf(s, "CP calls: %d (BG: %d)\n",
403 si->cp_count, si->bg_cp_count);

--- 185 unchanged lines hidden ---