1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM jbd 3 4 #if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_JBD_H 6 7 #include <linux/jbd.h> 8 #include <linux/tracepoint.h> 9 10 TRACE_EVENT(jbd_checkpoint, 11 12 TP_PROTO(journal_t *journal, int result), 13 14 TP_ARGS(journal, result), 15 16 TP_STRUCT__entry( 17 __field( dev_t, dev ) 18 __field( int, result ) 19 ), 20 21 TP_fast_assign( 22 __entry->dev = journal->j_fs_dev->bd_dev; 23 __entry->result = result; 24 ), 25 26 TP_printk("dev %d,%d result %d", 27 MAJOR(__entry->dev), MINOR(__entry->dev), 28 __entry->result) 29 ); 30 31 DECLARE_EVENT_CLASS(jbd_commit, 32 33 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 34 35 TP_ARGS(journal, commit_transaction), 36 37 TP_STRUCT__entry( 38 __field( dev_t, dev ) 39 __field( char, sync_commit ) 40 __field( int, transaction ) 41 ), 42 43 TP_fast_assign( 44 __entry->dev = journal->j_fs_dev->bd_dev; 45 __entry->sync_commit = commit_transaction->t_synchronous_commit; 46 __entry->transaction = commit_transaction->t_tid; 47 ), 48 49 TP_printk("dev %d,%d transaction %d sync %d", 50 MAJOR(__entry->dev), MINOR(__entry->dev), 51 __entry->transaction, __entry->sync_commit) 52 ); 53 54 DEFINE_EVENT(jbd_commit, jbd_start_commit, 55 56 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 57 58 TP_ARGS(journal, commit_transaction) 59 ); 60 61 DEFINE_EVENT(jbd_commit, jbd_commit_locking, 62 63 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 64 65 TP_ARGS(journal, commit_transaction) 66 ); 67 68 DEFINE_EVENT(jbd_commit, jbd_commit_flushing, 69 70 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 71 72 TP_ARGS(journal, commit_transaction) 73 ); 74 75 DEFINE_EVENT(jbd_commit, jbd_commit_logging, 76 77 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 78 79 TP_ARGS(journal, commit_transaction) 80 ); 81 82 TRACE_EVENT(jbd_drop_transaction, 83 84 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 85 86 TP_ARGS(journal, commit_transaction), 87 88 TP_STRUCT__entry( 89 __field( dev_t, dev ) 90 __field( char, sync_commit ) 91 __field( int, transaction ) 92 ), 93 94 TP_fast_assign( 95 __entry->dev = journal->j_fs_dev->bd_dev; 96 __entry->sync_commit = commit_transaction->t_synchronous_commit; 97 __entry->transaction = commit_transaction->t_tid; 98 ), 99 100 TP_printk("dev %d,%d transaction %d sync %d", 101 MAJOR(__entry->dev), MINOR(__entry->dev), 102 __entry->transaction, __entry->sync_commit) 103 ); 104 105 TRACE_EVENT(jbd_end_commit, 106 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 107 108 TP_ARGS(journal, commit_transaction), 109 110 TP_STRUCT__entry( 111 __field( dev_t, dev ) 112 __field( char, sync_commit ) 113 __field( int, transaction ) 114 __field( int, head ) 115 ), 116 117 TP_fast_assign( 118 __entry->dev = journal->j_fs_dev->bd_dev; 119 __entry->sync_commit = commit_transaction->t_synchronous_commit; 120 __entry->transaction = commit_transaction->t_tid; 121 __entry->head = journal->j_tail_sequence; 122 ), 123 124 TP_printk("dev %d,%d transaction %d sync %d head %d", 125 MAJOR(__entry->dev), MINOR(__entry->dev), 126 __entry->transaction, __entry->sync_commit, __entry->head) 127 ); 128 129 TRACE_EVENT(jbd_do_submit_data, 130 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 131 132 TP_ARGS(journal, commit_transaction), 133 134 TP_STRUCT__entry( 135 __field( dev_t, dev ) 136 __field( char, sync_commit ) 137 __field( int, transaction ) 138 ), 139 140 TP_fast_assign( 141 __entry->dev = journal->j_fs_dev->bd_dev; 142 __entry->sync_commit = commit_transaction->t_synchronous_commit; 143 __entry->transaction = commit_transaction->t_tid; 144 ), 145 146 TP_printk("dev %d,%d transaction %d sync %d", 147 MAJOR(__entry->dev), MINOR(__entry->dev), 148 __entry->transaction, __entry->sync_commit) 149 ); 150 151 TRACE_EVENT(jbd_cleanup_journal_tail, 152 153 TP_PROTO(journal_t *journal, tid_t first_tid, 154 unsigned long block_nr, unsigned long freed), 155 156 TP_ARGS(journal, first_tid, block_nr, freed), 157 158 TP_STRUCT__entry( 159 __field( dev_t, dev ) 160 __field( tid_t, tail_sequence ) 161 __field( tid_t, first_tid ) 162 __field(unsigned long, block_nr ) 163 __field(unsigned long, freed ) 164 ), 165 166 TP_fast_assign( 167 __entry->dev = journal->j_fs_dev->bd_dev; 168 __entry->tail_sequence = journal->j_tail_sequence; 169 __entry->first_tid = first_tid; 170 __entry->block_nr = block_nr; 171 __entry->freed = freed; 172 ), 173 174 TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", 175 MAJOR(__entry->dev), MINOR(__entry->dev), 176 __entry->tail_sequence, __entry->first_tid, 177 __entry->block_nr, __entry->freed) 178 ); 179 180 TRACE_EVENT(jbd_update_superblock_end, 181 TP_PROTO(journal_t *journal, int wait), 182 183 TP_ARGS(journal, wait), 184 185 TP_STRUCT__entry( 186 __field( dev_t, dev ) 187 __field( int, wait ) 188 ), 189 190 TP_fast_assign( 191 __entry->dev = journal->j_fs_dev->bd_dev; 192 __entry->wait = wait; 193 ), 194 195 TP_printk("dev %d,%d wait %d", 196 MAJOR(__entry->dev), MINOR(__entry->dev), 197 __entry->wait) 198 ); 199 200 #endif /* _TRACE_JBD_H */ 201 202 /* This part must be outside protection */ 203 #include <trace/define_trace.h> 204