1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 258497703SHitoshi Mitake #undef TRACE_SYSTEM 358497703SHitoshi Mitake #define TRACE_SYSTEM nilfs2 458497703SHitoshi Mitake 558497703SHitoshi Mitake #if !defined(_TRACE_NILFS2_H) || defined(TRACE_HEADER_MULTI_READ) 658497703SHitoshi Mitake #define _TRACE_NILFS2_H 758497703SHitoshi Mitake 858497703SHitoshi Mitake #include <linux/tracepoint.h> 958497703SHitoshi Mitake 1058497703SHitoshi Mitake struct nilfs_sc_info; 1158497703SHitoshi Mitake 1258497703SHitoshi Mitake #define show_collection_stage(type) \ 1358497703SHitoshi Mitake __print_symbolic(type, \ 1458497703SHitoshi Mitake { NILFS_ST_INIT, "ST_INIT" }, \ 1558497703SHitoshi Mitake { NILFS_ST_GC, "ST_GC" }, \ 1658497703SHitoshi Mitake { NILFS_ST_FILE, "ST_FILE" }, \ 1758497703SHitoshi Mitake { NILFS_ST_IFILE, "ST_IFILE" }, \ 1858497703SHitoshi Mitake { NILFS_ST_CPFILE, "ST_CPFILE" }, \ 1958497703SHitoshi Mitake { NILFS_ST_SUFILE, "ST_SUFILE" }, \ 2058497703SHitoshi Mitake { NILFS_ST_DAT, "ST_DAT" }, \ 2158497703SHitoshi Mitake { NILFS_ST_SR, "ST_SR" }, \ 2258497703SHitoshi Mitake { NILFS_ST_DSYNC, "ST_DSYNC" }, \ 2358497703SHitoshi Mitake { NILFS_ST_DONE, "ST_DONE"}) 2458497703SHitoshi Mitake 2558497703SHitoshi Mitake TRACE_EVENT(nilfs2_collection_stage_transition, 2658497703SHitoshi Mitake 2758497703SHitoshi Mitake TP_PROTO(struct nilfs_sc_info *sci), 2858497703SHitoshi Mitake 2958497703SHitoshi Mitake TP_ARGS(sci), 3058497703SHitoshi Mitake 3158497703SHitoshi Mitake TP_STRUCT__entry( 3258497703SHitoshi Mitake __field(void *, sci) 3358497703SHitoshi Mitake __field(int, stage) 3458497703SHitoshi Mitake ), 3558497703SHitoshi Mitake 3658497703SHitoshi Mitake TP_fast_assign( 3758497703SHitoshi Mitake __entry->sci = sci; 3858497703SHitoshi Mitake __entry->stage = sci->sc_stage.scnt; 3958497703SHitoshi Mitake ), 4058497703SHitoshi Mitake 4158497703SHitoshi Mitake TP_printk("sci = %p stage = %s", 4258497703SHitoshi Mitake __entry->sci, 4358497703SHitoshi Mitake show_collection_stage(__entry->stage)) 4458497703SHitoshi Mitake ); 4558497703SHitoshi Mitake 4644fda114SHitoshi Mitake #ifndef TRACE_HEADER_MULTI_READ 4744fda114SHitoshi Mitake enum nilfs2_transaction_transition_state { 4844fda114SHitoshi Mitake TRACE_NILFS2_TRANSACTION_BEGIN, 4944fda114SHitoshi Mitake TRACE_NILFS2_TRANSACTION_COMMIT, 5044fda114SHitoshi Mitake TRACE_NILFS2_TRANSACTION_ABORT, 5144fda114SHitoshi Mitake TRACE_NILFS2_TRANSACTION_TRYLOCK, 5244fda114SHitoshi Mitake TRACE_NILFS2_TRANSACTION_LOCK, 5344fda114SHitoshi Mitake TRACE_NILFS2_TRANSACTION_UNLOCK, 5444fda114SHitoshi Mitake }; 5544fda114SHitoshi Mitake #endif 5644fda114SHitoshi Mitake 5744fda114SHitoshi Mitake #define show_transaction_state(type) \ 5844fda114SHitoshi Mitake __print_symbolic(type, \ 5944fda114SHitoshi Mitake { TRACE_NILFS2_TRANSACTION_BEGIN, "BEGIN" }, \ 6044fda114SHitoshi Mitake { TRACE_NILFS2_TRANSACTION_COMMIT, "COMMIT" }, \ 6144fda114SHitoshi Mitake { TRACE_NILFS2_TRANSACTION_ABORT, "ABORT" }, \ 6244fda114SHitoshi Mitake { TRACE_NILFS2_TRANSACTION_TRYLOCK, "TRYLOCK" }, \ 6344fda114SHitoshi Mitake { TRACE_NILFS2_TRANSACTION_LOCK, "LOCK" }, \ 6444fda114SHitoshi Mitake { TRACE_NILFS2_TRANSACTION_UNLOCK, "UNLOCK" }) 6544fda114SHitoshi Mitake 6644fda114SHitoshi Mitake TRACE_EVENT(nilfs2_transaction_transition, 6744fda114SHitoshi Mitake TP_PROTO(struct super_block *sb, 6844fda114SHitoshi Mitake struct nilfs_transaction_info *ti, 6944fda114SHitoshi Mitake int count, 7044fda114SHitoshi Mitake unsigned int flags, 7144fda114SHitoshi Mitake enum nilfs2_transaction_transition_state state), 7244fda114SHitoshi Mitake 7344fda114SHitoshi Mitake TP_ARGS(sb, ti, count, flags, state), 7444fda114SHitoshi Mitake 7544fda114SHitoshi Mitake TP_STRUCT__entry( 7644fda114SHitoshi Mitake __field(void *, sb) 7744fda114SHitoshi Mitake __field(void *, ti) 7844fda114SHitoshi Mitake __field(int, count) 7944fda114SHitoshi Mitake __field(unsigned int, flags) 8044fda114SHitoshi Mitake __field(int, state) 8144fda114SHitoshi Mitake ), 8244fda114SHitoshi Mitake 8344fda114SHitoshi Mitake TP_fast_assign( 8444fda114SHitoshi Mitake __entry->sb = sb; 8544fda114SHitoshi Mitake __entry->ti = ti; 8644fda114SHitoshi Mitake __entry->count = count; 8744fda114SHitoshi Mitake __entry->flags = flags; 8844fda114SHitoshi Mitake __entry->state = state; 8944fda114SHitoshi Mitake ), 9044fda114SHitoshi Mitake 9144fda114SHitoshi Mitake TP_printk("sb = %p ti = %p count = %d flags = %x state = %s", 9244fda114SHitoshi Mitake __entry->sb, 9344fda114SHitoshi Mitake __entry->ti, 9444fda114SHitoshi Mitake __entry->count, 9544fda114SHitoshi Mitake __entry->flags, 9644fda114SHitoshi Mitake show_transaction_state(__entry->state)) 9744fda114SHitoshi Mitake ); 9844fda114SHitoshi Mitake 9983eec5e6SHitoshi Mitake TRACE_EVENT(nilfs2_segment_usage_check, 10083eec5e6SHitoshi Mitake TP_PROTO(struct inode *sufile, 10183eec5e6SHitoshi Mitake __u64 segnum, 10283eec5e6SHitoshi Mitake unsigned long cnt), 10383eec5e6SHitoshi Mitake 10483eec5e6SHitoshi Mitake TP_ARGS(sufile, segnum, cnt), 10583eec5e6SHitoshi Mitake 10683eec5e6SHitoshi Mitake TP_STRUCT__entry( 10783eec5e6SHitoshi Mitake __field(struct inode *, sufile) 10883eec5e6SHitoshi Mitake __field(__u64, segnum) 10983eec5e6SHitoshi Mitake __field(unsigned long, cnt) 11083eec5e6SHitoshi Mitake ), 11183eec5e6SHitoshi Mitake 11283eec5e6SHitoshi Mitake TP_fast_assign( 11383eec5e6SHitoshi Mitake __entry->sufile = sufile; 11483eec5e6SHitoshi Mitake __entry->segnum = segnum; 11583eec5e6SHitoshi Mitake __entry->cnt = cnt; 11683eec5e6SHitoshi Mitake ), 11783eec5e6SHitoshi Mitake 11883eec5e6SHitoshi Mitake TP_printk("sufile = %p segnum = %llu cnt = %lu", 11983eec5e6SHitoshi Mitake __entry->sufile, 12083eec5e6SHitoshi Mitake __entry->segnum, 12183eec5e6SHitoshi Mitake __entry->cnt) 12283eec5e6SHitoshi Mitake ); 12383eec5e6SHitoshi Mitake 12483eec5e6SHitoshi Mitake TRACE_EVENT(nilfs2_segment_usage_allocated, 12583eec5e6SHitoshi Mitake TP_PROTO(struct inode *sufile, 12683eec5e6SHitoshi Mitake __u64 segnum), 12783eec5e6SHitoshi Mitake 12883eec5e6SHitoshi Mitake TP_ARGS(sufile, segnum), 12983eec5e6SHitoshi Mitake 13083eec5e6SHitoshi Mitake TP_STRUCT__entry( 13183eec5e6SHitoshi Mitake __field(struct inode *, sufile) 13283eec5e6SHitoshi Mitake __field(__u64, segnum) 13383eec5e6SHitoshi Mitake ), 13483eec5e6SHitoshi Mitake 13583eec5e6SHitoshi Mitake TP_fast_assign( 13683eec5e6SHitoshi Mitake __entry->sufile = sufile; 13783eec5e6SHitoshi Mitake __entry->segnum = segnum; 13883eec5e6SHitoshi Mitake ), 13983eec5e6SHitoshi Mitake 14083eec5e6SHitoshi Mitake TP_printk("sufile = %p segnum = %llu", 14183eec5e6SHitoshi Mitake __entry->sufile, 14283eec5e6SHitoshi Mitake __entry->segnum) 14383eec5e6SHitoshi Mitake ); 14483eec5e6SHitoshi Mitake 14583eec5e6SHitoshi Mitake TRACE_EVENT(nilfs2_segment_usage_freed, 14683eec5e6SHitoshi Mitake TP_PROTO(struct inode *sufile, 14783eec5e6SHitoshi Mitake __u64 segnum), 14883eec5e6SHitoshi Mitake 14983eec5e6SHitoshi Mitake TP_ARGS(sufile, segnum), 15083eec5e6SHitoshi Mitake 15183eec5e6SHitoshi Mitake TP_STRUCT__entry( 15283eec5e6SHitoshi Mitake __field(struct inode *, sufile) 15383eec5e6SHitoshi Mitake __field(__u64, segnum) 15483eec5e6SHitoshi Mitake ), 15583eec5e6SHitoshi Mitake 15683eec5e6SHitoshi Mitake TP_fast_assign( 15783eec5e6SHitoshi Mitake __entry->sufile = sufile; 15883eec5e6SHitoshi Mitake __entry->segnum = segnum; 15983eec5e6SHitoshi Mitake ), 16083eec5e6SHitoshi Mitake 16183eec5e6SHitoshi Mitake TP_printk("sufile = %p segnum = %llu", 16283eec5e6SHitoshi Mitake __entry->sufile, 16383eec5e6SHitoshi Mitake __entry->segnum) 16483eec5e6SHitoshi Mitake ); 16583eec5e6SHitoshi Mitake 166a9cd207cSHitoshi Mitake TRACE_EVENT(nilfs2_mdt_insert_new_block, 167a9cd207cSHitoshi Mitake TP_PROTO(struct inode *inode, 168a9cd207cSHitoshi Mitake unsigned long ino, 169a9cd207cSHitoshi Mitake unsigned long block), 170a9cd207cSHitoshi Mitake 171a9cd207cSHitoshi Mitake TP_ARGS(inode, ino, block), 172a9cd207cSHitoshi Mitake 173a9cd207cSHitoshi Mitake TP_STRUCT__entry( 174a9cd207cSHitoshi Mitake __field(struct inode *, inode) 175a9cd207cSHitoshi Mitake __field(unsigned long, ino) 176a9cd207cSHitoshi Mitake __field(unsigned long, block) 177a9cd207cSHitoshi Mitake ), 178a9cd207cSHitoshi Mitake 179a9cd207cSHitoshi Mitake TP_fast_assign( 180a9cd207cSHitoshi Mitake __entry->inode = inode; 181a9cd207cSHitoshi Mitake __entry->ino = ino; 182a9cd207cSHitoshi Mitake __entry->block = block; 183a9cd207cSHitoshi Mitake ), 184a9cd207cSHitoshi Mitake 185a9cd207cSHitoshi Mitake TP_printk("inode = %p ino = %lu block = %lu", 186a9cd207cSHitoshi Mitake __entry->inode, 187a9cd207cSHitoshi Mitake __entry->ino, 188a9cd207cSHitoshi Mitake __entry->block) 189a9cd207cSHitoshi Mitake ); 190a9cd207cSHitoshi Mitake 191a9cd207cSHitoshi Mitake TRACE_EVENT(nilfs2_mdt_submit_block, 192a9cd207cSHitoshi Mitake TP_PROTO(struct inode *inode, 193a9cd207cSHitoshi Mitake unsigned long ino, 194a9cd207cSHitoshi Mitake unsigned long blkoff, 195*ed451259SBart Van Assche enum req_op mode), 196a9cd207cSHitoshi Mitake 197a9cd207cSHitoshi Mitake TP_ARGS(inode, ino, blkoff, mode), 198a9cd207cSHitoshi Mitake 199a9cd207cSHitoshi Mitake TP_STRUCT__entry( 200a9cd207cSHitoshi Mitake __field(struct inode *, inode) 201a9cd207cSHitoshi Mitake __field(unsigned long, ino) 202a9cd207cSHitoshi Mitake __field(unsigned long, blkoff) 203*ed451259SBart Van Assche __field(enum req_op, mode) 204a9cd207cSHitoshi Mitake ), 205a9cd207cSHitoshi Mitake 206a9cd207cSHitoshi Mitake TP_fast_assign( 207a9cd207cSHitoshi Mitake __entry->inode = inode; 208a9cd207cSHitoshi Mitake __entry->ino = ino; 209a9cd207cSHitoshi Mitake __entry->blkoff = blkoff; 210a9cd207cSHitoshi Mitake __entry->mode = mode; 211a9cd207cSHitoshi Mitake ), 212a9cd207cSHitoshi Mitake 213a9cd207cSHitoshi Mitake TP_printk("inode = %p ino = %lu blkoff = %lu mode = %x", 214a9cd207cSHitoshi Mitake __entry->inode, 215a9cd207cSHitoshi Mitake __entry->ino, 216a9cd207cSHitoshi Mitake __entry->blkoff, 217a9cd207cSHitoshi Mitake __entry->mode) 218a9cd207cSHitoshi Mitake ); 219a9cd207cSHitoshi Mitake 22058497703SHitoshi Mitake #endif /* _TRACE_NILFS2_H */ 22158497703SHitoshi Mitake 22258497703SHitoshi Mitake /* This part must be outside protection */ 22358497703SHitoshi Mitake #undef TRACE_INCLUDE_FILE 22458497703SHitoshi Mitake #define TRACE_INCLUDE_FILE nilfs2 22558497703SHitoshi Mitake #include <trace/define_trace.h> 226