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>
9 #include <linux/version.h>
11 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
12 #ifndef _TRACE_JBD2_DEF
13 #define _TRACE_JBD2_DEF
14 struct transaction_chp_stats_s
;
15 struct transaction_run_stats_s
;
19 TRACE_EVENT(jbd2_checkpoint
,
21 TP_PROTO(journal_t
*journal
, int result
),
23 TP_ARGS(journal
, result
),
27 __field( int, result
)
31 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
32 tp_assign(result
, result
)
35 TP_printk("dev %d,%d result %d",
36 MAJOR(__entry
->dev
), MINOR(__entry
->dev
), __entry
->result
)
39 DECLARE_EVENT_CLASS(jbd2_commit
,
41 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
43 TP_ARGS(journal
, commit_transaction
),
47 __field( char, sync_commit
)
48 __field( int, transaction
)
52 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
53 tp_assign(sync_commit
, commit_transaction
->t_synchronous_commit
)
54 tp_assign(transaction
, commit_transaction
->t_tid
)
57 TP_printk("dev %d,%d transaction %d sync %d",
58 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
59 __entry
->transaction
, __entry
->sync_commit
)
62 DEFINE_EVENT(jbd2_commit
, jbd2_start_commit
,
64 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
66 TP_ARGS(journal
, commit_transaction
)
69 DEFINE_EVENT(jbd2_commit
, jbd2_commit_locking
,
71 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
73 TP_ARGS(journal
, commit_transaction
)
76 DEFINE_EVENT(jbd2_commit
, jbd2_commit_flushing
,
78 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
80 TP_ARGS(journal
, commit_transaction
)
83 DEFINE_EVENT(jbd2_commit
, jbd2_commit_logging
,
85 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
87 TP_ARGS(journal
, commit_transaction
)
90 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
91 DEFINE_EVENT(jbd2_commit
, jbd2_drop_transaction
,
93 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
95 TP_ARGS(journal
, commit_transaction
)
99 TRACE_EVENT(jbd2_end_commit
,
100 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
102 TP_ARGS(journal
, commit_transaction
),
105 __field( dev_t
, dev
)
106 __field( char, sync_commit
)
107 __field( int, transaction
)
112 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
113 tp_assign(sync_commit
, commit_transaction
->t_synchronous_commit
)
114 tp_assign(transaction
, commit_transaction
->t_tid
)
115 tp_assign(head
, journal
->j_tail_sequence
)
118 TP_printk("dev %d,%d transaction %d sync %d head %d",
119 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
120 __entry
->transaction
, __entry
->sync_commit
, __entry
->head
)
123 TRACE_EVENT(jbd2_submit_inode_data
,
124 TP_PROTO(struct inode
*inode
),
129 __field( dev_t
, dev
)
130 __field( ino_t
, ino
)
134 tp_assign(dev
, inode
->i_sb
->s_dev
)
135 tp_assign(ino
, inode
->i_ino
)
138 TP_printk("dev %d,%d ino %lu",
139 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
140 (unsigned long) __entry
->ino
)
143 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
144 TRACE_EVENT(jbd2_run_stats
,
145 TP_PROTO(dev_t dev
, unsigned long tid
,
146 struct transaction_run_stats_s
*stats
),
148 TP_ARGS(dev
, tid
, stats
),
151 __field( dev_t
, dev
)
152 __field( unsigned long, tid
)
153 __field( unsigned long, wait
)
154 __field( unsigned long, running
)
155 __field( unsigned long, locked
)
156 __field( unsigned long, flushing
)
157 __field( unsigned long, logging
)
158 __field( __u32
, handle_count
)
159 __field( __u32
, blocks
)
160 __field( __u32
, blocks_logged
)
166 tp_assign(wait
, stats
->rs_wait
)
167 tp_assign(running
, stats
->rs_running
)
168 tp_assign(locked
, stats
->rs_locked
)
169 tp_assign(flushing
, stats
->rs_flushing
)
170 tp_assign(logging
, stats
->rs_logging
)
171 tp_assign(handle_count
, stats
->rs_handle_count
)
172 tp_assign(blocks
, stats
->rs_blocks
)
173 tp_assign(blocks_logged
, stats
->rs_blocks_logged
)
176 TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u "
177 "logging %u handle_count %u blocks %u blocks_logged %u",
178 MAJOR(__entry
->dev
), MINOR(__entry
->dev
), __entry
->tid
,
179 jiffies_to_msecs(__entry
->wait
),
180 jiffies_to_msecs(__entry
->running
),
181 jiffies_to_msecs(__entry
->locked
),
182 jiffies_to_msecs(__entry
->flushing
),
183 jiffies_to_msecs(__entry
->logging
),
184 __entry
->handle_count
, __entry
->blocks
,
185 __entry
->blocks_logged
)
188 TRACE_EVENT(jbd2_checkpoint_stats
,
189 TP_PROTO(dev_t dev
, unsigned long tid
,
190 struct transaction_chp_stats_s
*stats
),
192 TP_ARGS(dev
, tid
, stats
),
195 __field( dev_t
, dev
)
196 __field( unsigned long, tid
)
197 __field( unsigned long, chp_time
)
198 __field( __u32
, forced_to_close
)
199 __field( __u32
, written
)
200 __field( __u32
, dropped
)
206 tp_assign(chp_time
, stats
->cs_chp_time
)
207 tp_assign(forced_to_close
, stats
->cs_forced_to_close
)
208 tp_assign(written
, stats
->cs_written
)
209 tp_assign(dropped
, stats
->cs_dropped
)
212 TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
213 "written %u dropped %u",
214 MAJOR(__entry
->dev
), MINOR(__entry
->dev
), __entry
->tid
,
215 jiffies_to_msecs(__entry
->chp_time
),
216 __entry
->forced_to_close
, __entry
->written
, __entry
->dropped
)
220 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
221 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
222 TRACE_EVENT(jbd2_update_log_tail
,
224 TRACE_EVENT(jbd2_cleanup_journal_tail
,
227 TP_PROTO(journal_t
*journal
, tid_t first_tid
,
228 unsigned long block_nr
, unsigned long freed
),
230 TP_ARGS(journal
, first_tid
, block_nr
, freed
),
233 __field( dev_t
, dev
)
234 __field( tid_t
, tail_sequence
)
235 __field( tid_t
, first_tid
)
236 __field(unsigned long, block_nr
)
237 __field(unsigned long, freed
)
241 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
242 tp_assign(tail_sequence
, journal
->j_tail_sequence
)
243 tp_assign(first_tid
, first_tid
)
244 tp_assign(block_nr
, block_nr
)
245 tp_assign(freed
, freed
)
248 TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
249 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
250 __entry
->tail_sequence
, __entry
->first_tid
,
251 __entry
->block_nr
, __entry
->freed
)
255 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
256 TRACE_EVENT(jbd2_write_superblock
,
258 TP_PROTO(journal_t
*journal
, int write_op
),
260 TP_ARGS(journal
, write_op
),
263 __field( dev_t
, dev
)
264 __field( int, write_op
)
268 tp_assign(dev
, journal
->j_fs_dev
->bd_dev
)
269 tp_assign(write_op
, write_op
)
272 TP_printk("dev %d,%d write_op %x", MAJOR(__entry
->dev
),
273 MINOR(__entry
->dev
), __entry
->write_op
)
277 #endif /* _TRACE_JBD2_H */
279 /* This part must be outside protection */
280 #include "../../../probes/define_trace.h"