hc
2024-01-31 f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2
kernel/include/trace/events/f2fs.h
....@@ -6,6 +6,7 @@
66 #define _TRACE_F2FS_H
77
88 #include <linux/tracepoint.h>
9
+#include <uapi/linux/f2fs.h>
910
1011 #define show_dev(dev) MAJOR(dev), MINOR(dev)
1112 #define show_dev_ino(entry) show_dev(entry->dev), (unsigned long)entry->ino
....@@ -51,6 +52,8 @@
5152 TRACE_DEFINE_ENUM(CP_TRIMMED);
5253 TRACE_DEFINE_ENUM(CP_PAUSE);
5354 TRACE_DEFINE_ENUM(CP_RESIZE);
55
+TRACE_DEFINE_ENUM(EX_READ);
56
+TRACE_DEFINE_ENUM(EX_BLOCK_AGE);
5457
5558 #define show_block_type(type) \
5659 __print_symbolic(type, \
....@@ -78,17 +81,7 @@
7881 #define show_bio_type(op,op_flags) show_bio_op(op), \
7982 show_bio_op_flags(op_flags)
8083
81
-#define show_bio_op(op) \
82
- __print_symbolic(op, \
83
- { REQ_OP_READ, "READ" }, \
84
- { REQ_OP_WRITE, "WRITE" }, \
85
- { REQ_OP_FLUSH, "FLUSH" }, \
86
- { REQ_OP_DISCARD, "DISCARD" }, \
87
- { REQ_OP_ZONE_REPORT, "ZONE_REPORT" }, \
88
- { REQ_OP_SECURE_ERASE, "SECURE_ERASE" }, \
89
- { REQ_OP_ZONE_RESET, "ZONE_RESET" }, \
90
- { REQ_OP_WRITE_SAME, "WRITE_SAME" }, \
91
- { REQ_OP_WRITE_ZEROES, "WRITE_ZEROES" })
84
+#define show_bio_op(op) blk_op_str(op)
9285
9386 #define show_bio_op_flags(flags) \
9487 __print_flags(F2FS_BIO_FLAG_MASK(flags), "|", \
....@@ -121,13 +114,15 @@
121114
122115 #define show_alloc_mode(type) \
123116 __print_symbolic(type, \
124
- { LFS, "LFS-mode" }, \
125
- { SSR, "SSR-mode" })
117
+ { LFS, "LFS-mode" }, \
118
+ { SSR, "SSR-mode" }, \
119
+ { AT_SSR, "AT_SSR-mode" })
126120
127121 #define show_victim_policy(type) \
128122 __print_symbolic(type, \
129123 { GC_GREEDY, "Greedy" }, \
130
- { GC_CB, "Cost-Benefit" })
124
+ { GC_CB, "Cost-Benefit" }, \
125
+ { GC_AT, "Age-threshold" })
131126
132127 #define show_cpreason(type) \
133128 __print_flags(type, "|", \
....@@ -166,7 +161,13 @@
166161 __print_symbolic(type, \
167162 { COMPRESS_LZO, "LZO" }, \
168163 { COMPRESS_LZ4, "LZ4" }, \
169
- { COMPRESS_ZSTD, "ZSTD" })
164
+ { COMPRESS_ZSTD, "ZSTD" }, \
165
+ { COMPRESS_LZORLE, "LZO-RLE" })
166
+
167
+#define show_extent_type(type) \
168
+ __print_symbolic(type, \
169
+ { EX_READ, "Read" }, \
170
+ { EX_BLOCK_AGE, "Block Age" })
170171
171172 struct f2fs_sb_info;
172173 struct f2fs_io_info;
....@@ -519,7 +520,7 @@
519520 TP_STRUCT__entry(
520521 __field(dev_t, dev)
521522 __field(ino_t, ino)
522
- __field(nid_t, nid[3])
523
+ __array(nid_t, nid, 3)
523524 __field(int, depth)
524525 __field(int, err)
525526 ),
....@@ -1388,9 +1389,9 @@
13881389
13891390 TRACE_EVENT(f2fs_readpages,
13901391
1391
- TP_PROTO(struct inode *inode, struct page *page, unsigned int nrpage),
1392
+ TP_PROTO(struct inode *inode, pgoff_t start, unsigned int nrpage),
13921393
1393
- TP_ARGS(inode, page, nrpage),
1394
+ TP_ARGS(inode, start, nrpage),
13941395
13951396 TP_STRUCT__entry(
13961397 __field(dev_t, dev)
....@@ -1402,7 +1403,7 @@
14021403 TP_fast_assign(
14031404 __entry->dev = inode->i_sb->s_dev;
14041405 __entry->ino = inode->i_ino;
1405
- __entry->start = page->index;
1406
+ __entry->start = start;
14061407 __entry->nrpage = nrpage;
14071408 ),
14081409
....@@ -1532,28 +1533,31 @@
15321533
15331534 TRACE_EVENT(f2fs_lookup_extent_tree_start,
15341535
1535
- TP_PROTO(struct inode *inode, unsigned int pgofs),
1536
+ TP_PROTO(struct inode *inode, unsigned int pgofs, enum extent_type type),
15361537
1537
- TP_ARGS(inode, pgofs),
1538
+ TP_ARGS(inode, pgofs, type),
15381539
15391540 TP_STRUCT__entry(
15401541 __field(dev_t, dev)
15411542 __field(ino_t, ino)
15421543 __field(unsigned int, pgofs)
1544
+ __field(enum extent_type, type)
15431545 ),
15441546
15451547 TP_fast_assign(
15461548 __entry->dev = inode->i_sb->s_dev;
15471549 __entry->ino = inode->i_ino;
15481550 __entry->pgofs = pgofs;
1551
+ __entry->type = type;
15491552 ),
15501553
1551
- TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u",
1554
+ TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, type = %s",
15521555 show_dev_ino(__entry),
1553
- __entry->pgofs)
1556
+ __entry->pgofs,
1557
+ show_extent_type(__entry->type))
15541558 );
15551559
1556
-TRACE_EVENT_CONDITION(f2fs_lookup_extent_tree_end,
1560
+TRACE_EVENT_CONDITION(f2fs_lookup_read_extent_tree_end,
15571561
15581562 TP_PROTO(struct inode *inode, unsigned int pgofs,
15591563 struct extent_info *ei),
....@@ -1567,8 +1571,8 @@
15671571 __field(ino_t, ino)
15681572 __field(unsigned int, pgofs)
15691573 __field(unsigned int, fofs)
1570
- __field(u32, blk)
15711574 __field(unsigned int, len)
1575
+ __field(u32, blk)
15721576 ),
15731577
15741578 TP_fast_assign(
....@@ -1576,25 +1580,65 @@
15761580 __entry->ino = inode->i_ino;
15771581 __entry->pgofs = pgofs;
15781582 __entry->fofs = ei->fofs;
1579
- __entry->blk = ei->blk;
15801583 __entry->len = ei->len;
1584
+ __entry->blk = ei->blk;
15811585 ),
15821586
15831587 TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1584
- "ext_info(fofs: %u, blk: %u, len: %u)",
1588
+ "read_ext_info(fofs: %u, len: %u, blk: %u)",
15851589 show_dev_ino(__entry),
15861590 __entry->pgofs,
15871591 __entry->fofs,
1588
- __entry->blk,
1589
- __entry->len)
1592
+ __entry->len,
1593
+ __entry->blk)
15901594 );
15911595
1592
-TRACE_EVENT(f2fs_update_extent_tree_range,
1596
+TRACE_EVENT_CONDITION(f2fs_lookup_age_extent_tree_end,
15931597
1594
- TP_PROTO(struct inode *inode, unsigned int pgofs, block_t blkaddr,
1595
- unsigned int len),
1598
+ TP_PROTO(struct inode *inode, unsigned int pgofs,
1599
+ struct extent_info *ei),
15961600
1597
- TP_ARGS(inode, pgofs, blkaddr, len),
1601
+ TP_ARGS(inode, pgofs, ei),
1602
+
1603
+ TP_CONDITION(ei),
1604
+
1605
+ TP_STRUCT__entry(
1606
+ __field(dev_t, dev)
1607
+ __field(ino_t, ino)
1608
+ __field(unsigned int, pgofs)
1609
+ __field(unsigned int, fofs)
1610
+ __field(unsigned int, len)
1611
+ __field(unsigned long long, age)
1612
+ __field(unsigned long long, blocks)
1613
+ ),
1614
+
1615
+ TP_fast_assign(
1616
+ __entry->dev = inode->i_sb->s_dev;
1617
+ __entry->ino = inode->i_ino;
1618
+ __entry->pgofs = pgofs;
1619
+ __entry->fofs = ei->fofs;
1620
+ __entry->len = ei->len;
1621
+ __entry->age = ei->age;
1622
+ __entry->blocks = ei->last_blocks;
1623
+ ),
1624
+
1625
+ TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1626
+ "age_ext_info(fofs: %u, len: %u, age: %llu, blocks: %llu)",
1627
+ show_dev_ino(__entry),
1628
+ __entry->pgofs,
1629
+ __entry->fofs,
1630
+ __entry->len,
1631
+ __entry->age,
1632
+ __entry->blocks)
1633
+);
1634
+
1635
+TRACE_EVENT(f2fs_update_read_extent_tree_range,
1636
+
1637
+ TP_PROTO(struct inode *inode, unsigned int pgofs, unsigned int len,
1638
+ block_t blkaddr,
1639
+ unsigned int c_len),
1640
+
1641
+ TP_ARGS(inode, pgofs, len, blkaddr, c_len),
15981642
15991643 TP_STRUCT__entry(
16001644 __field(dev_t, dev)
....@@ -1602,70 +1646,115 @@
16021646 __field(unsigned int, pgofs)
16031647 __field(u32, blk)
16041648 __field(unsigned int, len)
1649
+ __field(unsigned int, c_len)
16051650 ),
16061651
16071652 TP_fast_assign(
16081653 __entry->dev = inode->i_sb->s_dev;
16091654 __entry->ino = inode->i_ino;
16101655 __entry->pgofs = pgofs;
1611
- __entry->blk = blkaddr;
16121656 __entry->len = len;
1657
+ __entry->blk = blkaddr;
1658
+ __entry->c_len = c_len;
16131659 ),
16141660
16151661 TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1616
- "blkaddr = %u, len = %u",
1662
+ "len = %u, blkaddr = %u, c_len = %u",
16171663 show_dev_ino(__entry),
16181664 __entry->pgofs,
1665
+ __entry->len,
16191666 __entry->blk,
1620
- __entry->len)
1667
+ __entry->c_len)
1668
+);
1669
+
1670
+TRACE_EVENT(f2fs_update_age_extent_tree_range,
1671
+
1672
+ TP_PROTO(struct inode *inode, unsigned int pgofs, unsigned int len,
1673
+ unsigned long long age,
1674
+ unsigned long long last_blks),
1675
+
1676
+ TP_ARGS(inode, pgofs, len, age, last_blks),
1677
+
1678
+ TP_STRUCT__entry(
1679
+ __field(dev_t, dev)
1680
+ __field(ino_t, ino)
1681
+ __field(unsigned int, pgofs)
1682
+ __field(unsigned int, len)
1683
+ __field(unsigned long long, age)
1684
+ __field(unsigned long long, blocks)
1685
+ ),
1686
+
1687
+ TP_fast_assign(
1688
+ __entry->dev = inode->i_sb->s_dev;
1689
+ __entry->ino = inode->i_ino;
1690
+ __entry->pgofs = pgofs;
1691
+ __entry->len = len;
1692
+ __entry->age = age;
1693
+ __entry->blocks = last_blks;
1694
+ ),
1695
+
1696
+ TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1697
+ "len = %u, age = %llu, blocks = %llu",
1698
+ show_dev_ino(__entry),
1699
+ __entry->pgofs,
1700
+ __entry->len,
1701
+ __entry->age,
1702
+ __entry->blocks)
16211703 );
16221704
16231705 TRACE_EVENT(f2fs_shrink_extent_tree,
16241706
16251707 TP_PROTO(struct f2fs_sb_info *sbi, unsigned int node_cnt,
1626
- unsigned int tree_cnt),
1708
+ unsigned int tree_cnt, enum extent_type type),
16271709
1628
- TP_ARGS(sbi, node_cnt, tree_cnt),
1710
+ TP_ARGS(sbi, node_cnt, tree_cnt, type),
16291711
16301712 TP_STRUCT__entry(
16311713 __field(dev_t, dev)
16321714 __field(unsigned int, node_cnt)
16331715 __field(unsigned int, tree_cnt)
1716
+ __field(enum extent_type, type)
16341717 ),
16351718
16361719 TP_fast_assign(
16371720 __entry->dev = sbi->sb->s_dev;
16381721 __entry->node_cnt = node_cnt;
16391722 __entry->tree_cnt = tree_cnt;
1723
+ __entry->type = type;
16401724 ),
16411725
1642
- TP_printk("dev = (%d,%d), shrunk: node_cnt = %u, tree_cnt = %u",
1726
+ TP_printk("dev = (%d,%d), shrunk: node_cnt = %u, tree_cnt = %u, type = %s",
16431727 show_dev(__entry->dev),
16441728 __entry->node_cnt,
1645
- __entry->tree_cnt)
1729
+ __entry->tree_cnt,
1730
+ show_extent_type(__entry->type))
16461731 );
16471732
16481733 TRACE_EVENT(f2fs_destroy_extent_tree,
16491734
1650
- TP_PROTO(struct inode *inode, unsigned int node_cnt),
1735
+ TP_PROTO(struct inode *inode, unsigned int node_cnt,
1736
+ enum extent_type type),
16511737
1652
- TP_ARGS(inode, node_cnt),
1738
+ TP_ARGS(inode, node_cnt, type),
16531739
16541740 TP_STRUCT__entry(
16551741 __field(dev_t, dev)
16561742 __field(ino_t, ino)
16571743 __field(unsigned int, node_cnt)
1744
+ __field(enum extent_type, type)
16581745 ),
16591746
16601747 TP_fast_assign(
16611748 __entry->dev = inode->i_sb->s_dev;
16621749 __entry->ino = inode->i_ino;
16631750 __entry->node_cnt = node_cnt;
1751
+ __entry->type = type;
16641752 ),
16651753
1666
- TP_printk("dev = (%d,%d), ino = %lu, destroyed: node_cnt = %u",
1754
+ TP_printk("dev = (%d,%d), ino = %lu, destroyed: node_cnt = %u, type = %s",
16671755 show_dev_ino(__entry),
1668
- __entry->node_cnt)
1756
+ __entry->node_cnt,
1757
+ show_extent_type(__entry->type))
16691758 );
16701759
16711760 DECLARE_EVENT_CLASS(f2fs_sync_dirty_inodes,
....@@ -1900,6 +1989,69 @@
19001989 __entry->fs_cdrio, __entry->fs_nrio, __entry->fs_mrio)
19011990 );
19021991
1992
+TRACE_EVENT(f2fs_bmap,
1993
+
1994
+ TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock),
1995
+
1996
+ TP_ARGS(inode, lblock, pblock),
1997
+
1998
+ TP_STRUCT__entry(
1999
+ __field(dev_t, dev)
2000
+ __field(ino_t, ino)
2001
+ __field(sector_t, lblock)
2002
+ __field(sector_t, pblock)
2003
+ ),
2004
+
2005
+ TP_fast_assign(
2006
+ __entry->dev = inode->i_sb->s_dev;
2007
+ __entry->ino = inode->i_ino;
2008
+ __entry->lblock = lblock;
2009
+ __entry->pblock = pblock;
2010
+ ),
2011
+
2012
+ TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld",
2013
+ show_dev_ino(__entry),
2014
+ (unsigned long long)__entry->lblock,
2015
+ (unsigned long long)__entry->pblock)
2016
+);
2017
+
2018
+TRACE_EVENT(f2fs_fiemap,
2019
+
2020
+ TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock,
2021
+ unsigned long long len, unsigned int flags, int ret),
2022
+
2023
+ TP_ARGS(inode, lblock, pblock, len, flags, ret),
2024
+
2025
+ TP_STRUCT__entry(
2026
+ __field(dev_t, dev)
2027
+ __field(ino_t, ino)
2028
+ __field(sector_t, lblock)
2029
+ __field(sector_t, pblock)
2030
+ __field(unsigned long long, len)
2031
+ __field(unsigned int, flags)
2032
+ __field(int, ret)
2033
+ ),
2034
+
2035
+ TP_fast_assign(
2036
+ __entry->dev = inode->i_sb->s_dev;
2037
+ __entry->ino = inode->i_ino;
2038
+ __entry->lblock = lblock;
2039
+ __entry->pblock = pblock;
2040
+ __entry->len = len;
2041
+ __entry->flags = flags;
2042
+ __entry->ret = ret;
2043
+ ),
2044
+
2045
+ TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld, "
2046
+ "len:%llu, flags:%u, ret:%d",
2047
+ show_dev_ino(__entry),
2048
+ (unsigned long long)__entry->lblock,
2049
+ (unsigned long long)__entry->pblock,
2050
+ __entry->len,
2051
+ __entry->flags,
2052
+ __entry->ret)
2053
+);
2054
+
19032055 #endif /* _TRACE_F2FS_H */
19042056
19052057 /* This part must be outside protection */