f2fs: support to show curseg.next_blkoff in debugfs

cat /sys/kernel/debug/f2fs/status

Main area: 17 segs, 17 secs 17 zones
TYPE blkoff segno secno zoneno dirty_seg full_seg valid_blk
- COLD data: 0 4 4 4 0 0 0
- WARM data: 0 7 7 7 0 0 0
- HOT data: 1 5 5 5 2 0 512
- Dir dnode: 3 0 0 0 1 0 2
- File dnode: 0 1 1 1 0 0 0
- Indir nodes: 0 2 2 2 0 0 0
- Pinned file: 0 -1 -1 -1
- ATGC data: 0 -1 -1 -1

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

authored by Chao Yu and committed by Jaegeuk Kim 8f11fe52 fbc0774b

+20 -10
+19 -10
fs/f2fs/debug.c
··· 251 251 for (i = CURSEG_HOT_DATA; i < NO_CHECK_TYPE; i++) { 252 252 struct curseg_info *curseg = CURSEG_I(sbi, i); 253 253 254 + si->blkoff[i] = curseg->next_blkoff; 254 255 si->curseg[i] = curseg->segno; 255 256 si->cursec[i] = GET_SEC_FROM_SEG(sbi, curseg->segno); 256 257 si->curzone[i] = GET_ZONE_FROM_SEC(sbi, si->cursec[i]); ··· 509 508 seq_printf(s, "\nMain area: %d segs, %d secs %d zones\n", 510 509 si->main_area_segs, si->main_area_sections, 511 510 si->main_area_zones); 512 - seq_printf(s, " TYPE %8s %8s %8s %10s %10s %10s\n", 513 - "segno", "secno", "zoneno", "dirty_seg", "full_seg", "valid_blk"); 514 - seq_printf(s, " - COLD data: %8d %8d %8d %10u %10u %10u\n", 511 + seq_printf(s, " TYPE %8s %8s %8s %8s %10s %10s %10s\n", 512 + "blkoff", "segno", "secno", "zoneno", "dirty_seg", "full_seg", "valid_blk"); 513 + seq_printf(s, " - COLD data: %8d %8d %8d %8d %10u %10u %10u\n", 514 + si->blkoff[CURSEG_COLD_DATA], 515 515 si->curseg[CURSEG_COLD_DATA], 516 516 si->cursec[CURSEG_COLD_DATA], 517 517 si->curzone[CURSEG_COLD_DATA], 518 518 si->dirty_seg[CURSEG_COLD_DATA], 519 519 si->full_seg[CURSEG_COLD_DATA], 520 520 si->valid_blks[CURSEG_COLD_DATA]); 521 - seq_printf(s, " - WARM data: %8d %8d %8d %10u %10u %10u\n", 521 + seq_printf(s, " - WARM data: %8d %8d %8d %8d %10u %10u %10u\n", 522 + si->blkoff[CURSEG_WARM_DATA], 522 523 si->curseg[CURSEG_WARM_DATA], 523 524 si->cursec[CURSEG_WARM_DATA], 524 525 si->curzone[CURSEG_WARM_DATA], 525 526 si->dirty_seg[CURSEG_WARM_DATA], 526 527 si->full_seg[CURSEG_WARM_DATA], 527 528 si->valid_blks[CURSEG_WARM_DATA]); 528 - seq_printf(s, " - HOT data: %8d %8d %8d %10u %10u %10u\n", 529 + seq_printf(s, " - HOT data: %8d %8d %8d %8d %10u %10u %10u\n", 530 + si->blkoff[CURSEG_HOT_DATA], 529 531 si->curseg[CURSEG_HOT_DATA], 530 532 si->cursec[CURSEG_HOT_DATA], 531 533 si->curzone[CURSEG_HOT_DATA], 532 534 si->dirty_seg[CURSEG_HOT_DATA], 533 535 si->full_seg[CURSEG_HOT_DATA], 534 536 si->valid_blks[CURSEG_HOT_DATA]); 535 - seq_printf(s, " - Dir dnode: %8d %8d %8d %10u %10u %10u\n", 537 + seq_printf(s, " - Dir dnode: %8d %8d %8d %8d %10u %10u %10u\n", 538 + si->blkoff[CURSEG_HOT_NODE], 536 539 si->curseg[CURSEG_HOT_NODE], 537 540 si->cursec[CURSEG_HOT_NODE], 538 541 si->curzone[CURSEG_HOT_NODE], 539 542 si->dirty_seg[CURSEG_HOT_NODE], 540 543 si->full_seg[CURSEG_HOT_NODE], 541 544 si->valid_blks[CURSEG_HOT_NODE]); 542 - seq_printf(s, " - File dnode: %8d %8d %8d %10u %10u %10u\n", 545 + seq_printf(s, " - File dnode: %8d %8d %8d %8d %10u %10u %10u\n", 546 + si->blkoff[CURSEG_WARM_NODE], 543 547 si->curseg[CURSEG_WARM_NODE], 544 548 si->cursec[CURSEG_WARM_NODE], 545 549 si->curzone[CURSEG_WARM_NODE], 546 550 si->dirty_seg[CURSEG_WARM_NODE], 547 551 si->full_seg[CURSEG_WARM_NODE], 548 552 si->valid_blks[CURSEG_WARM_NODE]); 549 - seq_printf(s, " - Indir nodes: %8d %8d %8d %10u %10u %10u\n", 553 + seq_printf(s, " - Indir nodes: %8d %8d %8d %8d %10u %10u %10u\n", 554 + si->blkoff[CURSEG_COLD_NODE], 550 555 si->curseg[CURSEG_COLD_NODE], 551 556 si->cursec[CURSEG_COLD_NODE], 552 557 si->curzone[CURSEG_COLD_NODE], 553 558 si->dirty_seg[CURSEG_COLD_NODE], 554 559 si->full_seg[CURSEG_COLD_NODE], 555 560 si->valid_blks[CURSEG_COLD_NODE]); 556 - seq_printf(s, " - Pinned file: %8d %8d %8d\n", 561 + seq_printf(s, " - Pinned file: %8d %8d %8d %8d\n", 562 + si->blkoff[CURSEG_COLD_DATA_PINNED], 557 563 si->curseg[CURSEG_COLD_DATA_PINNED], 558 564 si->cursec[CURSEG_COLD_DATA_PINNED], 559 565 si->curzone[CURSEG_COLD_DATA_PINNED]); 560 - seq_printf(s, " - ATGC data: %8d %8d %8d\n", 566 + seq_printf(s, " - ATGC data: %8d %8d %8d %8d\n", 567 + si->blkoff[CURSEG_ALL_DATA_ATGC], 561 568 si->curseg[CURSEG_ALL_DATA_ATGC], 562 569 si->cursec[CURSEG_ALL_DATA_ATGC], 563 570 si->curzone[CURSEG_ALL_DATA_ATGC]);
+1
fs/f2fs/f2fs.h
··· 4188 4188 int gc_secs[2][2]; 4189 4189 int tot_blks, data_blks, node_blks; 4190 4190 int bg_data_blks, bg_node_blks; 4191 + int blkoff[NR_CURSEG_TYPE]; 4191 4192 int curseg[NR_CURSEG_TYPE]; 4192 4193 int cursec[NR_CURSEG_TYPE]; 4193 4194 int curzone[NR_CURSEG_TYPE];