fix: jbd2: use the correct print format
[lttng-modules.git] / include / instrumentation / events / jbd2.h
CommitLineData
b7cdc182 1/* SPDX-License-Identifier: GPL-2.0-only */
b283666f
PW
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM jbd2
4
3bc29f0a
MD
5#if !defined(LTTNG_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
6#define LTTNG_TRACE_JBD2_H
b283666f 7
3b4aafcb 8#include <lttng/tracepoint-event.h>
b283666f 9#include <linux/jbd2.h>
5f4c791e 10#include <lttng/kernel-version.h>
b283666f
PW
11
12#ifndef _TRACE_JBD2_DEF
13#define _TRACE_JBD2_DEF
14struct transaction_chp_stats_s;
15struct transaction_run_stats_s;
16#endif
17
3bc29f0a 18LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint,
b283666f
PW
19
20 TP_PROTO(journal_t *journal, int result),
21
22 TP_ARGS(journal, result),
23
f127e61e
MD
24 TP_FIELDS(
25 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
26 ctf_integer(int, result, result)
27 )
b283666f
PW
28)
29
b28830a0
MJ
30#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,2,0) \
31 || LTTNG_KERNEL_RANGE(5,15,87, 5,16,0) \
32 || LTTNG_KERNEL_RANGE(6,0,18, 6,1,0) \
33 || LTTNG_KERNEL_RANGE(6,1,4, 6,2,0))
34LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit,
35
36 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
37
38 TP_ARGS(journal, commit_transaction),
39
40 TP_FIELDS(
41 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
42 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
43 ctf_integer(tid_t, transaction, commit_transaction->t_tid)
44 )
45)
46#else
3bc29f0a 47LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit,
b283666f
PW
48
49 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
50
51 TP_ARGS(journal, commit_transaction),
52
f127e61e
MD
53 TP_FIELDS(
54 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
55 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
56 ctf_integer(int, transaction, commit_transaction->t_tid)
57 )
b283666f 58)
b28830a0 59#endif
b283666f 60
3bc29f0a 61LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_start_commit,
b283666f
PW
62
63 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
64
65 TP_ARGS(journal, commit_transaction)
66)
67
3bc29f0a 68LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_commit_locking,
b283666f
PW
69
70 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
71
72 TP_ARGS(journal, commit_transaction)
73)
74
3bc29f0a 75LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_commit_flushing,
b283666f
PW
76
77 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
78
79 TP_ARGS(journal, commit_transaction)
80)
81
3bc29f0a 82LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_commit_logging,
b283666f
PW
83
84 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
85
86 TP_ARGS(journal, commit_transaction)
87)
88
5f4c791e 89#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
3bc29f0a 90LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_drop_transaction,
7c68b363
AG
91
92 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
93
94 TP_ARGS(journal, commit_transaction)
95)
96#endif
97
b28830a0
MJ
98#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,2,0) \
99 || LTTNG_KERNEL_RANGE(5,15,87, 5,16,0) \
100 || LTTNG_KERNEL_RANGE(6,0,18, 6,1,0) \
101 || LTTNG_KERNEL_RANGE(6,1,4, 6,2,0))
102LTTNG_TRACEPOINT_EVENT(jbd2_end_commit,
103 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
104
105 TP_ARGS(journal, commit_transaction),
106
107 TP_FIELDS(
108 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
109 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
110 ctf_integer(tid_t, transaction, commit_transaction->t_tid)
111 ctf_integer(tid_t, head, journal->j_tail_sequence)
112 )
113)
114#else
3bc29f0a 115LTTNG_TRACEPOINT_EVENT(jbd2_end_commit,
b283666f
PW
116 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
117
118 TP_ARGS(journal, commit_transaction),
119
f127e61e
MD
120 TP_FIELDS(
121 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
122 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
123 ctf_integer(int, transaction, commit_transaction->t_tid)
124 ctf_integer(int, head, journal->j_tail_sequence)
125 )
b283666f 126)
b28830a0 127#endif
b283666f 128
3bc29f0a 129LTTNG_TRACEPOINT_EVENT(jbd2_submit_inode_data,
b283666f
PW
130 TP_PROTO(struct inode *inode),
131
132 TP_ARGS(inode),
133
f127e61e
MD
134 TP_FIELDS(
135 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
136 ctf_integer(ino_t, ino, inode->i_ino)
137 )
b283666f
PW
138)
139
b28830a0
MJ
140#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,2,0) \
141 || LTTNG_KERNEL_RANGE(5,15,87, 5,16,0) \
142 || LTTNG_KERNEL_RANGE(6,0,18, 6,1,0) \
143 || LTTNG_KERNEL_RANGE(6,1,4, 6,2,0))
144LTTNG_TRACEPOINT_EVENT(jbd2_run_stats,
145 TP_PROTO(dev_t dev, tid_t tid,
146 struct transaction_run_stats_s *stats),
147
148 TP_ARGS(dev, tid, stats),
149
150 TP_FIELDS(
151 ctf_integer(dev_t, dev, dev)
152 ctf_integer(tid_t, tid, tid)
153 ctf_integer(unsigned long, wait, stats->rs_wait)
154 ctf_integer(unsigned long, running, stats->rs_running)
155 ctf_integer(unsigned long, locked, stats->rs_locked)
156 ctf_integer(unsigned long, flushing, stats->rs_flushing)
157 ctf_integer(unsigned long, logging, stats->rs_logging)
158 ctf_integer(__u32, handle_count, stats->rs_handle_count)
159 ctf_integer(__u32, blocks, stats->rs_blocks)
160 ctf_integer(__u32, blocks_logged, stats->rs_blocks_logged)
161 )
162)
163
164LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats,
165 TP_PROTO(dev_t dev, tid_t tid,
166 struct transaction_chp_stats_s *stats),
167
168 TP_ARGS(dev, tid, stats),
169
170 TP_FIELDS(
171 ctf_integer(dev_t, dev, dev)
172 ctf_integer(tid_t, tid, tid)
173 ctf_integer(unsigned long, chp_time, stats->cs_chp_time)
174 ctf_integer(__u32, forced_to_close, stats->cs_forced_to_close)
175 ctf_integer(__u32, written, stats->cs_written)
176 ctf_integer(__u32, dropped, stats->cs_dropped)
177 )
178)
179#else
3bc29f0a 180LTTNG_TRACEPOINT_EVENT(jbd2_run_stats,
b283666f
PW
181 TP_PROTO(dev_t dev, unsigned long tid,
182 struct transaction_run_stats_s *stats),
183
184 TP_ARGS(dev, tid, stats),
185
f127e61e
MD
186 TP_FIELDS(
187 ctf_integer(dev_t, dev, dev)
188 ctf_integer(unsigned long, tid, tid)
189 ctf_integer(unsigned long, wait, stats->rs_wait)
190 ctf_integer(unsigned long, running, stats->rs_running)
191 ctf_integer(unsigned long, locked, stats->rs_locked)
192 ctf_integer(unsigned long, flushing, stats->rs_flushing)
193 ctf_integer(unsigned long, logging, stats->rs_logging)
194 ctf_integer(__u32, handle_count, stats->rs_handle_count)
195 ctf_integer(__u32, blocks, stats->rs_blocks)
196 ctf_integer(__u32, blocks_logged, stats->rs_blocks_logged)
197 )
b283666f
PW
198)
199
3bc29f0a 200LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats,
b283666f
PW
201 TP_PROTO(dev_t dev, unsigned long tid,
202 struct transaction_chp_stats_s *stats),
203
204 TP_ARGS(dev, tid, stats),
205
f127e61e
MD
206 TP_FIELDS(
207 ctf_integer(dev_t, dev, dev)
208 ctf_integer(unsigned long, tid, tid)
209 ctf_integer(unsigned long, chp_time, stats->cs_chp_time)
210 ctf_integer(__u32, forced_to_close, stats->cs_forced_to_close)
211 ctf_integer(__u32, written, stats->cs_written)
212 ctf_integer(__u32, dropped, stats->cs_dropped)
213 )
b283666f 214)
b28830a0 215#endif
b283666f 216
3bc29f0a 217LTTNG_TRACEPOINT_EVENT(jbd2_update_log_tail,
b283666f
PW
218 TP_PROTO(journal_t *journal, tid_t first_tid,
219 unsigned long block_nr, unsigned long freed),
220
221 TP_ARGS(journal, first_tid, block_nr, freed),
222
f127e61e
MD
223 TP_FIELDS(
224 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
225 ctf_integer(tid_t, tail_sequence, journal->j_tail_sequence)
226 ctf_integer(tid_t, first_tid, first_tid)
227 ctf_integer(unsigned long, block_nr, block_nr)
228 ctf_integer(unsigned long, freed, freed)
229 )
b283666f 230)
7c68b363 231
d2771276
MJ
232#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,0,0))
233
234#ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM
235LTTNG_TRACEPOINT_ENUM(req_op,
236 TP_ENUM_VALUES(
237 ctf_enum_value("REQ_OP_READ", REQ_OP_READ)
238 ctf_enum_value("REQ_OP_WRITE", REQ_OP_WRITE)
239 ctf_enum_value("REQ_OP_FLUSH", REQ_OP_FLUSH)
240 ctf_enum_value("REQ_OP_DISCARD", REQ_OP_DISCARD)
241 ctf_enum_value("REQ_OP_SECURE_ERASE", REQ_OP_SECURE_ERASE)
242 ctf_enum_value("REQ_OP_WRITE_ZEROES", REQ_OP_WRITE_ZEROES)
243 ctf_enum_value("REQ_OP_ZONE_OPEN", REQ_OP_ZONE_OPEN)
244 ctf_enum_value("REQ_OP_ZONE_CLOSE", REQ_OP_ZONE_CLOSE)
245 ctf_enum_value("REQ_OP_ZONE_FINISH", REQ_OP_ZONE_FINISH)
246 ctf_enum_value("REQ_OP_ZONE_APPEND", REQ_OP_ZONE_APPEND)
247 ctf_enum_value("REQ_OP_ZONE_RESET", REQ_OP_ZONE_RESET)
248 ctf_enum_value("REQ_OP_ZONE_RESET_ALL", REQ_OP_ZONE_RESET_ALL)
249 ctf_enum_value("REQ_OP_DRV_IN", REQ_OP_DRV_IN)
250 ctf_enum_value("REQ_OP_DRV_OUT", REQ_OP_DRV_OUT)
251 ctf_enum_value("REQ_OP_LAST", REQ_OP_LAST)
252 )
253)
254#endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */
255
256LTTNG_TRACEPOINT_EVENT(jbd2_write_superblock,
257
258 TP_PROTO(journal_t *journal, blk_opf_t write_flags),
259
260 TP_ARGS(journal, write_flags),
261
262 TP_FIELDS(
263 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
264#ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM
265 ctf_enum(req_op, blk_opf_t, write_flags, write_flags)
266#else
267 ctf_integer_hex(blk_opf_t, write_flags, write_flags)
268#endif
269 )
270)
1efbdb9f 271#else
3bc29f0a 272LTTNG_TRACEPOINT_EVENT(jbd2_write_superblock,
7c68b363
AG
273
274 TP_PROTO(journal_t *journal, int write_op),
275
276 TP_ARGS(journal, write_op),
277
f127e61e
MD
278 TP_FIELDS(
279 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
280 ctf_integer(int, write_op, write_op)
281 )
7c68b363
AG
282)
283#endif
b283666f 284
3bc29f0a 285#endif /* LTTNG_TRACE_JBD2_H */
b283666f
PW
286
287/* This part must be outside protection */
3b4aafcb 288#include <lttng/define_trace.h>
This page took 0.063907 seconds and 4 git commands to generate.