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