2 #define TRACE_SYSTEM jbd2
4 #if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
7 #include <linux/jbd2.h>
8 #include <linux/tracepoint.h>
10 #ifndef _TRACE_JBD2_DEF
11 #define _TRACE_JBD2_DEF
12 struct transaction_chp_stats_s
;
13 struct transaction_run_stats_s
;
16 TRACE_EVENT(jbd2_checkpoint
,
18 TP_PROTO(journal_t
*journal
, int result
),
20 TP_ARGS(journal
, result
),
24 __field( int, result
)
28 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
29 tp_assign(result
, result
)
32 TP_printk("dev %d,%d result %d",
33 MAJOR(__entry
->dev
), MINOR(__entry
->dev
), __entry
->result
)
36 DECLARE_EVENT_CLASS(jbd2_commit
,
38 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
40 TP_ARGS(journal
, commit_transaction
),
44 __field( char, sync_commit
)
45 __field( int, transaction
)
49 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
50 tp_assign(sync_commit
, commit_transaction
->t_synchronous_commit
)
51 tp_assign(transaction
, commit_transaction
->t_tid
)
54 TP_printk("dev %d,%d transaction %d sync %d",
55 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
56 __entry
->transaction
, __entry
->sync_commit
)
59 DEFINE_EVENT(jbd2_commit
, jbd2_start_commit
,
61 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
63 TP_ARGS(journal
, commit_transaction
)
66 DEFINE_EVENT(jbd2_commit
, jbd2_commit_locking
,
68 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
70 TP_ARGS(journal
, commit_transaction
)
73 DEFINE_EVENT(jbd2_commit
, jbd2_commit_flushing
,
75 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
77 TP_ARGS(journal
, commit_transaction
)
80 DEFINE_EVENT(jbd2_commit
, jbd2_commit_logging
,
82 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
84 TP_ARGS(journal
, commit_transaction
)
87 TRACE_EVENT(jbd2_end_commit
,
88 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
90 TP_ARGS(journal
, commit_transaction
),
94 __field( char, sync_commit
)
95 __field( int, transaction
)
100 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
101 tp_assign(sync_commit
, commit_transaction
->t_synchronous_commit
)
102 tp_assign(transaction
, commit_transaction
->t_tid
)
103 tp_assign(head
, journal
->j_tail_sequence
)
106 TP_printk("dev %d,%d transaction %d sync %d head %d",
107 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
108 __entry
->transaction
, __entry
->sync_commit
, __entry
->head
)
111 TRACE_EVENT(jbd2_submit_inode_data
,
112 TP_PROTO(struct inode
*inode
),
117 __field( dev_t
, dev
)
118 __field( ino_t
, ino
)
122 tp_assign(dev
, inode
->i_sb
->s_dev
)
123 tp_assign(ino
, inode
->i_ino
)
126 TP_printk("dev %d,%d ino %lu",
127 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
128 (unsigned long) __entry
->ino
)
131 TRACE_EVENT(jbd2_run_stats
,
132 TP_PROTO(dev_t dev
, unsigned long tid
,
133 struct transaction_run_stats_s
*stats
),
135 TP_ARGS(dev
, tid
, stats
),
138 __field( dev_t
, dev
)
139 __field( unsigned long, tid
)
140 __field( unsigned long, wait
)
141 __field( unsigned long, running
)
142 __field( unsigned long, locked
)
143 __field( unsigned long, flushing
)
144 __field( unsigned long, logging
)
145 __field( __u32
, handle_count
)
146 __field( __u32
, blocks
)
147 __field( __u32
, blocks_logged
)
153 tp_assign(wait
, stats
->rs_wait
)
154 tp_assign(running
, stats
->rs_running
)
155 tp_assign(locked
, stats
->rs_locked
)
156 tp_assign(flushing
, stats
->rs_flushing
)
157 tp_assign(logging
, stats
->rs_logging
)
158 tp_assign(handle_count
, stats
->rs_handle_count
)
159 tp_assign(blocks
, stats
->rs_blocks
)
160 tp_assign(blocks_logged
, stats
->rs_blocks_logged
)
163 TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u "
164 "logging %u handle_count %u blocks %u blocks_logged %u",
165 MAJOR(__entry
->dev
), MINOR(__entry
->dev
), __entry
->tid
,
166 jiffies_to_msecs(__entry
->wait
),
167 jiffies_to_msecs(__entry
->running
),
168 jiffies_to_msecs(__entry
->locked
),
169 jiffies_to_msecs(__entry
->flushing
),
170 jiffies_to_msecs(__entry
->logging
),
171 __entry
->handle_count
, __entry
->blocks
,
172 __entry
->blocks_logged
)
175 TRACE_EVENT(jbd2_checkpoint_stats
,
176 TP_PROTO(dev_t dev
, unsigned long tid
,
177 struct transaction_chp_stats_s
*stats
),
179 TP_ARGS(dev
, tid
, stats
),
182 __field( dev_t
, dev
)
183 __field( unsigned long, tid
)
184 __field( unsigned long, chp_time
)
185 __field( __u32
, forced_to_close
)
186 __field( __u32
, written
)
187 __field( __u32
, dropped
)
193 tp_assign(chp_time
, stats
->cs_chp_time
)
194 tp_assign(forced_to_close
, stats
->cs_forced_to_close
)
195 tp_assign(written
, stats
->cs_written
)
196 tp_assign(dropped
, stats
->cs_dropped
)
199 TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
200 "written %u dropped %u",
201 MAJOR(__entry
->dev
), MINOR(__entry
->dev
), __entry
->tid
,
202 jiffies_to_msecs(__entry
->chp_time
),
203 __entry
->forced_to_close
, __entry
->written
, __entry
->dropped
)
206 TRACE_EVENT(jbd2_cleanup_journal_tail
,
208 TP_PROTO(journal_t
*journal
, tid_t first_tid
,
209 unsigned long block_nr
, unsigned long freed
),
211 TP_ARGS(journal
, first_tid
, block_nr
, freed
),
214 __field( dev_t
, dev
)
215 __field( tid_t
, tail_sequence
)
216 __field( tid_t
, first_tid
)
217 __field(unsigned long, block_nr
)
218 __field(unsigned long, freed
)
222 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
223 tp_assign(tail_sequence
, journal
->j_tail_sequence
)
224 tp_assign(first_tid
, first_tid
)
225 tp_assign(block_nr
, block_nr
)
226 tp_assign(freed
, freed
)
229 TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
230 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
231 __entry
->tail_sequence
, __entry
->first_tid
,
232 __entry
->block_nr
, __entry
->freed
)
235 #endif /* _TRACE_JBD2_H */
237 /* This part must be outside protection */
238 #include "../../../probes/define_trace.h"