1 /* SPDX-License-Identifier: GPL-2.0 */
3 #define TRACE_SYSTEM jbd2
5 #if !defined(LTTNG_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_JBD2_H
8 #include <probes/lttng-tracepoint-event.h>
9 #include <linux/jbd2.h>
10 #include <lttng-kernel-version.h>
12 #ifndef _TRACE_JBD2_DEF
13 #define _TRACE_JBD2_DEF
14 struct transaction_chp_stats_s
;
15 struct transaction_run_stats_s
;
18 LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint
,
20 TP_PROTO(journal_t
*journal
, int result
),
22 TP_ARGS(journal
, result
),
25 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
26 ctf_integer(int, result
, result
)
30 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,2,0) \
31 || LTTNG_KERNEL_RANGE(5,4,229, 5,5,0) \
32 || LTTNG_KERNEL_RANGE(5,10,163, 5,11,0) \
33 || LTTNG_KERNEL_RANGE(5,15,87, 5,16,0) \
34 || LTTNG_KERNEL_RANGE(6,0,18, 6,1,0) \
35 || LTTNG_KERNEL_RANGE(6,1,4, 6,2,0))
36 LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit
,
38 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
40 TP_ARGS(journal
, commit_transaction
),
43 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
44 ctf_integer(char, sync_commit
, commit_transaction
->t_synchronous_commit
)
45 ctf_integer(tid_t
, transaction
, commit_transaction
->t_tid
)
49 LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit
,
51 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
53 TP_ARGS(journal
, commit_transaction
),
56 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
57 ctf_integer(char, sync_commit
, commit_transaction
->t_synchronous_commit
)
58 ctf_integer(int, transaction
, commit_transaction
->t_tid
)
63 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit
, jbd2_start_commit
,
65 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
67 TP_ARGS(journal
, commit_transaction
)
70 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit
, jbd2_commit_locking
,
72 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
74 TP_ARGS(journal
, commit_transaction
)
77 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit
, jbd2_commit_flushing
,
79 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
81 TP_ARGS(journal
, commit_transaction
)
84 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit
, jbd2_commit_logging
,
86 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
88 TP_ARGS(journal
, commit_transaction
)
91 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
92 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit
, jbd2_drop_transaction
,
94 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
96 TP_ARGS(journal
, commit_transaction
)
100 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,2,0) \
101 || LTTNG_KERNEL_RANGE(5,4,229, 5,5,0) \
102 || LTTNG_KERNEL_RANGE(5,10,163, 5,11,0) \
103 || LTTNG_KERNEL_RANGE(5,15,87, 5,16,0) \
104 || LTTNG_KERNEL_RANGE(6,0,18, 6,1,0) \
105 || LTTNG_KERNEL_RANGE(6,1,4, 6,2,0))
106 LTTNG_TRACEPOINT_EVENT(jbd2_end_commit
,
107 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
109 TP_ARGS(journal
, commit_transaction
),
112 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
113 ctf_integer(char, sync_commit
, commit_transaction
->t_synchronous_commit
)
114 ctf_integer(tid_t
, transaction
, commit_transaction
->t_tid
)
115 ctf_integer(tid_t
, head
, journal
->j_tail_sequence
)
119 LTTNG_TRACEPOINT_EVENT(jbd2_end_commit
,
120 TP_PROTO(journal_t
*journal
, transaction_t
*commit_transaction
),
122 TP_ARGS(journal
, commit_transaction
),
125 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
126 ctf_integer(char, sync_commit
, commit_transaction
->t_synchronous_commit
)
127 ctf_integer(int, transaction
, commit_transaction
->t_tid
)
128 ctf_integer(int, head
, journal
->j_tail_sequence
)
133 LTTNG_TRACEPOINT_EVENT(jbd2_submit_inode_data
,
134 TP_PROTO(struct inode
*inode
),
139 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
140 ctf_integer(ino_t
, ino
, inode
->i_ino
)
144 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,2,0) \
145 || LTTNG_KERNEL_RANGE(5,4,229, 5,5,0) \
146 || LTTNG_KERNEL_RANGE(5,10,163, 5,11,0) \
147 || LTTNG_KERNEL_RANGE(5,15,87, 5,16,0) \
148 || LTTNG_KERNEL_RANGE(6,0,18, 6,1,0) \
149 || LTTNG_KERNEL_RANGE(6,1,4, 6,2,0) \
150 || LTTNG_SLE_KERNEL_RANGE(5,14,21,150400,24,46, 5,15,0,0,0,0) \
151 || LTTNG_UBUNTU_KERNEL_RANGE(5,19,17,42, 5,19,18,0) \
152 || LTTNG_UBUNTU_KERNEL_RANGE(5,19,7,1024, 5,19,8,0))
153 LTTNG_TRACEPOINT_EVENT(jbd2_run_stats
,
154 TP_PROTO(dev_t dev
, tid_t tid
,
155 struct transaction_run_stats_s
*stats
),
157 TP_ARGS(dev
, tid
, stats
),
160 ctf_integer(dev_t
, dev
, dev
)
161 ctf_integer(tid_t
, tid
, tid
)
162 ctf_integer(unsigned long, wait
, stats
->rs_wait
)
163 ctf_integer(unsigned long, running
, stats
->rs_running
)
164 ctf_integer(unsigned long, locked
, stats
->rs_locked
)
165 ctf_integer(unsigned long, flushing
, stats
->rs_flushing
)
166 ctf_integer(unsigned long, logging
, stats
->rs_logging
)
167 ctf_integer(__u32
, handle_count
, stats
->rs_handle_count
)
168 ctf_integer(__u32
, blocks
, stats
->rs_blocks
)
169 ctf_integer(__u32
, blocks_logged
, stats
->rs_blocks_logged
)
173 LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats
,
174 TP_PROTO(dev_t dev
, tid_t tid
,
175 struct transaction_chp_stats_s
*stats
),
177 TP_ARGS(dev
, tid
, stats
),
180 ctf_integer(dev_t
, dev
, dev
)
181 ctf_integer(tid_t
, tid
, tid
)
182 ctf_integer(unsigned long, chp_time
, stats
->cs_chp_time
)
183 ctf_integer(__u32
, forced_to_close
, stats
->cs_forced_to_close
)
184 ctf_integer(__u32
, written
, stats
->cs_written
)
185 ctf_integer(__u32
, dropped
, stats
->cs_dropped
)
189 LTTNG_TRACEPOINT_EVENT(jbd2_run_stats
,
190 TP_PROTO(dev_t dev
, unsigned long tid
,
191 struct transaction_run_stats_s
*stats
),
193 TP_ARGS(dev
, tid
, stats
),
196 ctf_integer(dev_t
, dev
, dev
)
197 ctf_integer(unsigned long, tid
, tid
)
198 ctf_integer(unsigned long, wait
, stats
->rs_wait
)
199 ctf_integer(unsigned long, running
, stats
->rs_running
)
200 ctf_integer(unsigned long, locked
, stats
->rs_locked
)
201 ctf_integer(unsigned long, flushing
, stats
->rs_flushing
)
202 ctf_integer(unsigned long, logging
, stats
->rs_logging
)
203 ctf_integer(__u32
, handle_count
, stats
->rs_handle_count
)
204 ctf_integer(__u32
, blocks
, stats
->rs_blocks
)
205 ctf_integer(__u32
, blocks_logged
, stats
->rs_blocks_logged
)
209 LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats
,
210 TP_PROTO(dev_t dev
, unsigned long tid
,
211 struct transaction_chp_stats_s
*stats
),
213 TP_ARGS(dev
, tid
, stats
),
216 ctf_integer(dev_t
, dev
, dev
)
217 ctf_integer(unsigned long, tid
, tid
)
218 ctf_integer(unsigned long, chp_time
, stats
->cs_chp_time
)
219 ctf_integer(__u32
, forced_to_close
, stats
->cs_forced_to_close
)
220 ctf_integer(__u32
, written
, stats
->cs_written
)
221 ctf_integer(__u32
, dropped
, stats
->cs_dropped
)
226 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
227 LTTNG_TRACEPOINT_EVENT(jbd2_update_log_tail
,
229 LTTNG_TRACEPOINT_EVENT(jbd2_cleanup_journal_tail
,
232 TP_PROTO(journal_t
*journal
, tid_t first_tid
,
233 unsigned long block_nr
, unsigned long freed
),
235 TP_ARGS(journal
, first_tid
, block_nr
, freed
),
238 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
239 ctf_integer(tid_t
, tail_sequence
, journal
->j_tail_sequence
)
240 ctf_integer(tid_t
, first_tid
, first_tid
)
241 ctf_integer(unsigned long, block_nr
, block_nr
)
242 ctf_integer(unsigned long, freed
, freed
)
246 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
247 LTTNG_TRACEPOINT_EVENT(jbd2_write_superblock
,
249 TP_PROTO(journal_t
*journal
, int write_op
),
251 TP_ARGS(journal
, write_op
),
254 ctf_integer(dev_t
, dev
, journal
->j_fs_dev
->bd_dev
)
255 ctf_integer(int, write_op
, write_op
)
260 #endif /* LTTNG_TRACE_JBD2_H */
262 /* This part must be outside protection */
263 #include <probes/define_trace.h>