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 --- |