^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM erofs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #if !defined(_TRACE_EROFS_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _TRACE_EROFS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/fs.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) struct erofs_map_blocks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define show_dev(dev) MAJOR(dev), MINOR(dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define show_dev_nid(entry) show_dev(entry->dev), entry->nid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define show_file_type(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) __print_symbolic(type, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) { 0, "FILE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) { 1, "DIR" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define show_map_flags(flags) __print_flags(flags, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) { EROFS_GET_BLOCKS_RAW, "RAW" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define show_mflags(flags) __print_flags(flags, "", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) { EROFS_MAP_MAPPED, "M" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) { EROFS_MAP_META, "I" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) { EROFS_MAP_ZIPPED, "Z" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) TRACE_EVENT(erofs_lookup,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) TP_PROTO(struct inode *dir, struct dentry *dentry, unsigned int flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) TP_ARGS(dir, dentry, flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) __field(dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) __field(erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) __string(name, dentry->d_name.name )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) __field(unsigned int, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) __entry->dev = dir->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) __entry->nid = EROFS_I(dir)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) __assign_str(name, dentry->d_name.name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) __entry->flags = flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TP_printk("dev = (%d,%d), pnid = %llu, name:%s, flags:%x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) show_dev_nid(__entry),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) __entry->flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) TRACE_EVENT(erofs_fill_inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) TP_PROTO(struct inode *inode, int isdir),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) TP_ARGS(inode, isdir),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) __field(dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) __field(erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) __field(erofs_blk_t, blkaddr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) __field(unsigned int, ofs )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) __field(int, isdir )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) __entry->nid = EROFS_I(inode)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) __entry->blkaddr = erofs_blknr(iloc(EROFS_I_SB(inode), __entry->nid));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) __entry->ofs = erofs_blkoff(iloc(EROFS_I_SB(inode), __entry->nid));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) __entry->isdir = isdir;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) TP_printk("dev = (%d,%d), nid = %llu, blkaddr %u ofs %u, isdir %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) show_dev_nid(__entry),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) __entry->blkaddr, __entry->ofs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) __entry->isdir)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) TRACE_EVENT(erofs_readpage,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) TP_PROTO(struct page *page, bool raw),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) TP_ARGS(page, raw),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) __field(dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) __field(erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) __field(int, dir )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) __field(pgoff_t, index )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) __field(int, uptodate)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) __field(bool, raw )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) __entry->dev = page->mapping->host->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) __entry->nid = EROFS_I(page->mapping->host)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) __entry->dir = S_ISDIR(page->mapping->host->i_mode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) __entry->index = page->index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) __entry->uptodate = PageUptodate(page);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) __entry->raw = raw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) TP_printk("dev = (%d,%d), nid = %llu, %s, index = %lu, uptodate = %d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) "raw = %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) show_dev_nid(__entry),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) show_file_type(__entry->dir),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) (unsigned long)__entry->index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) __entry->uptodate,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) __entry->raw)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) TRACE_EVENT(erofs_readpages,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) TP_PROTO(struct inode *inode, pgoff_t start, unsigned int nrpage,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) bool raw),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) TP_ARGS(inode, start, nrpage, raw),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) __field(dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) __field(erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) __field(pgoff_t, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) __field(unsigned int, nrpage )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) __field(bool, raw )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) __entry->nid = EROFS_I(inode)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) __entry->nrpage = nrpage;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) __entry->raw = raw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) TP_printk("dev = (%d,%d), nid = %llu, start = %lu nrpage = %u raw = %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) show_dev_nid(__entry),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) (unsigned long)__entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) __entry->nrpage,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) __entry->raw)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) DECLARE_EVENT_CLASS(erofs__map_blocks_enter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) TP_PROTO(struct inode *inode, struct erofs_map_blocks *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) unsigned int flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) TP_ARGS(inode, map, flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) __field( dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) __field( erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) __field( erofs_off_t, la )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) __field( u64, llen )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) __field( unsigned int, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) __entry->nid = EROFS_I(inode)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) __entry->la = map->m_la;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) __entry->llen = map->m_llen;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) __entry->flags = flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) TP_printk("dev = (%d,%d), nid = %llu, la %llu llen %llu flags %s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) show_dev_nid(__entry),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) __entry->la, __entry->llen,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) __entry->flags ? show_map_flags(__entry->flags) : "NULL")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) DEFINE_EVENT(erofs__map_blocks_enter, erofs_map_blocks_flatmode_enter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) TP_PROTO(struct inode *inode, struct erofs_map_blocks *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) unsigned flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) TP_ARGS(inode, map, flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) DEFINE_EVENT(erofs__map_blocks_enter, z_erofs_map_blocks_iter_enter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) TP_PROTO(struct inode *inode, struct erofs_map_blocks *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) unsigned int flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) TP_ARGS(inode, map, flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) DECLARE_EVENT_CLASS(erofs__map_blocks_exit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) TP_PROTO(struct inode *inode, struct erofs_map_blocks *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) unsigned int flags, int ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) TP_ARGS(inode, map, flags, ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) __field( dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) __field( erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) __field( unsigned int, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) __field( erofs_off_t, la )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) __field( erofs_off_t, pa )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) __field( u64, llen )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) __field( u64, plen )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) __field( unsigned int, mflags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) __field( int, ret )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) __entry->nid = EROFS_I(inode)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) __entry->flags = flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) __entry->la = map->m_la;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) __entry->pa = map->m_pa;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) __entry->llen = map->m_llen;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) __entry->plen = map->m_plen;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) __entry->mflags = map->m_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) __entry->ret = ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) TP_printk("dev = (%d,%d), nid = %llu, flags %s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) "la %llu pa %llu llen %llu plen %llu mflags %s ret %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) show_dev_nid(__entry),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) __entry->flags ? show_map_flags(__entry->flags) : "NULL",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) __entry->la, __entry->pa, __entry->llen, __entry->plen,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) show_mflags(__entry->mflags), __entry->ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) DEFINE_EVENT(erofs__map_blocks_exit, erofs_map_blocks_flatmode_exit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) TP_PROTO(struct inode *inode, struct erofs_map_blocks *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) unsigned flags, int ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) TP_ARGS(inode, map, flags, ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) DEFINE_EVENT(erofs__map_blocks_exit, z_erofs_map_blocks_iter_exit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) TP_PROTO(struct inode *inode, struct erofs_map_blocks *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) unsigned int flags, int ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) TP_ARGS(inode, map, flags, ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) TRACE_EVENT(erofs_destroy_inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) TP_PROTO(struct inode *inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) TP_ARGS(inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) __field( dev_t, dev )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) __field( erofs_nid_t, nid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) __entry->nid = EROFS_I(inode)->nid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) TP_printk("dev = (%d,%d), nid = %llu", show_dev_nid(__entry))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) #endif /* _TRACE_EROFS_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) #include <trace/define_trace.h>