Fix: support ext4_journal_start on EL 8.4+
[lttng-modules.git] / instrumentation / events / lttng-module / ext4.h
CommitLineData
9f36eaed 1/* SPDX-License-Identifier: GPL-2.0 */
b87700e3
AG
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM ext4
4
3bc29f0a
MD
5#if !defined(LTTNG_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
6#define LTTNG_TRACE_EXT4_H
b87700e3 7
6ec43db8 8#include <probes/lttng-tracepoint-event.h>
b87700e3 9#include <linux/writeback.h>
2d042821 10#include <lttng-kernel-version.h>
b87700e3
AG
11
12#ifndef _TRACE_EXT4_DEF_
13#define _TRACE_EXT4_DEF_
14struct ext4_allocation_context;
15struct ext4_allocation_request;
16struct ext4_prealloc_space;
17struct ext4_inode_info;
18struct mpage_da_data;
19struct ext4_map_blocks;
2d042821 20#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
b87700e3
AG
21struct ext4_extent;
22#endif
23#endif
24
25#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
2d042821 26#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
b87700e3
AG
27#define TP_MODE_T __u16
28#else
29#define TP_MODE_T umode_t
30#endif
31
3bc29f0a 32LTTNG_TRACEPOINT_EVENT(ext4_free_inode,
b87700e3
AG
33 TP_PROTO(struct inode *inode),
34
35 TP_ARGS(inode),
36
f127e61e
MD
37 TP_FIELDS(
38 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
39 ctf_integer(ino_t, ino, inode->i_ino)
2d042821 40#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
f127e61e
MD
41 ctf_integer(uid_t, uid, i_uid_read(inode))
42 ctf_integer(gid_t, gid, i_gid_read(inode))
b87700e3 43#else
f127e61e
MD
44 ctf_integer(uid_t, uid, inode->i_uid)
45 ctf_integer(gid_t, gid, inode->i_gid)
b87700e3 46#endif
f127e61e
MD
47 ctf_integer(__u64, blocks, inode->i_blocks)
48 ctf_integer(TP_MODE_T, mode, inode->i_mode)
49 )
b87700e3
AG
50)
51
3bc29f0a 52LTTNG_TRACEPOINT_EVENT(ext4_request_inode,
b87700e3
AG
53 TP_PROTO(struct inode *dir, int mode),
54
55 TP_ARGS(dir, mode),
56
f127e61e
MD
57 TP_FIELDS(
58 ctf_integer(dev_t, dev, dir->i_sb->s_dev)
59 ctf_integer(ino_t, dir, dir->i_ino)
60 ctf_integer(TP_MODE_T, mode, mode)
61 )
b87700e3
AG
62)
63
3bc29f0a 64LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode,
b87700e3
AG
65 TP_PROTO(struct inode *inode, struct inode *dir, int mode),
66
67 TP_ARGS(inode, dir, mode),
68
f127e61e
MD
69 TP_FIELDS(
70 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
71 ctf_integer(ino_t, ino, inode->i_ino)
72 ctf_integer(ino_t, dir, dir->i_ino)
73 ctf_integer(TP_MODE_T, mode, mode)
74 )
b87700e3
AG
75)
76
3bc29f0a 77LTTNG_TRACEPOINT_EVENT(ext4_evict_inode,
b87700e3
AG
78 TP_PROTO(struct inode *inode),
79
80 TP_ARGS(inode),
81
f127e61e
MD
82 TP_FIELDS(
83 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
84 ctf_integer(ino_t, ino, inode->i_ino)
85 ctf_integer(int, nlink, inode->i_nlink)
86 )
b87700e3
AG
87)
88
3bc29f0a 89LTTNG_TRACEPOINT_EVENT(ext4_drop_inode,
b87700e3
AG
90 TP_PROTO(struct inode *inode, int drop),
91
92 TP_ARGS(inode, drop),
93
f127e61e
MD
94 TP_FIELDS(
95 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
96 ctf_integer(ino_t, ino, inode->i_ino)
97 ctf_integer(int, drop, drop)
98 )
b87700e3
AG
99)
100
3bc29f0a 101LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty,
b87700e3
AG
102 TP_PROTO(struct inode *inode, unsigned long IP),
103
104 TP_ARGS(inode, IP),
105
f127e61e
MD
106 TP_FIELDS(
107 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
108 ctf_integer(ino_t, ino, inode->i_ino)
109 ctf_integer(unsigned long, ip, IP)
110 )
b87700e3
AG
111)
112
3bc29f0a 113LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate,
b87700e3
AG
114 TP_PROTO(struct inode *inode, loff_t new_size),
115
116 TP_ARGS(inode, new_size),
117
f127e61e
MD
118 TP_FIELDS(
119 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
120 ctf_integer(ino_t, ino, inode->i_ino)
121 ctf_integer(loff_t, new_size, new_size)
122 )
b87700e3 123)
b87700e3 124
3bc29f0a 125LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin,
b87700e3
AG
126
127 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
128 unsigned int flags),
129
130 TP_ARGS(inode, pos, len, flags),
131
f127e61e
MD
132 TP_FIELDS(
133 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
134 ctf_integer(ino_t, ino, inode->i_ino)
135 ctf_integer(loff_t, pos, pos)
136 ctf_integer(unsigned int, len, len)
137 ctf_integer(unsigned int, flags, flags)
138 )
b87700e3
AG
139)
140
3bc29f0a 141LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin,
b87700e3
AG
142
143 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
144 unsigned int flags),
145
146 TP_ARGS(inode, pos, len, flags)
147)
148
3bc29f0a 149LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_da_write_begin,
b87700e3
AG
150
151 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
152 unsigned int flags),
153
154 TP_ARGS(inode, pos, len, flags)
155)
156
3bc29f0a 157LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end,
b87700e3
AG
158 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
159 unsigned int copied),
160
161 TP_ARGS(inode, pos, len, copied),
162
f127e61e
MD
163 TP_FIELDS(
164 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
165 ctf_integer(ino_t, ino, inode->i_ino)
166 ctf_integer(loff_t, pos, pos)
167 ctf_integer(unsigned int, len, len)
168 ctf_integer(unsigned int, copied, copied)
169 )
b87700e3
AG
170)
171
3bc29f0a 172LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_ordered_write_end,
b87700e3
AG
173
174 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
175 unsigned int copied),
176
177 TP_ARGS(inode, pos, len, copied)
178)
179
3bc29f0a 180LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_writeback_write_end,
b87700e3
AG
181
182 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
183 unsigned int copied),
184
185 TP_ARGS(inode, pos, len, copied)
186)
187
3bc29f0a 188LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_journalled_write_end,
b87700e3
AG
189
190 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
191 unsigned int copied),
192
193 TP_ARGS(inode, pos, len, copied)
194)
195
3bc29f0a 196LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_da_write_end,
b87700e3
AG
197
198 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
199 unsigned int copied),
200
201 TP_ARGS(inode, pos, len, copied)
202)
203
3bc29f0a 204LTTNG_TRACEPOINT_EVENT(ext4_da_writepages,
b87700e3
AG
205 TP_PROTO(struct inode *inode, struct writeback_control *wbc),
206
207 TP_ARGS(inode, wbc),
208
f127e61e
MD
209 TP_FIELDS(
210 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
211 ctf_integer(ino_t, ino, inode->i_ino)
212 ctf_integer(long, nr_to_write, wbc->nr_to_write)
213 ctf_integer(long, pages_skipped, wbc->pages_skipped)
214 ctf_integer(loff_t, range_start, wbc->range_start)
215 ctf_integer(loff_t, range_end, wbc->range_end)
216 ctf_integer(pgoff_t, writeback_index, inode->i_mapping->writeback_index)
f127e61e 217 ctf_integer(int, sync_mode, wbc->sync_mode)
f127e61e 218 ctf_integer(char, for_kupdate, wbc->for_kupdate)
f127e61e
MD
219 ctf_integer(char, range_cyclic, wbc->range_cyclic)
220 )
b87700e3
AG
221)
222
2d042821 223#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 224
3bc29f0a 225LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
00be8842
MD
226 TP_PROTO(struct inode *inode, pgoff_t first_page,
227 struct writeback_control *wbc),
228
229 TP_ARGS(inode, first_page, wbc),
230
f127e61e
MD
231 TP_FIELDS(
232 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
233 ctf_integer(ino_t, ino, inode->i_ino)
234 ctf_integer(pgoff_t, first_page, first_page)
235 ctf_integer(long, nr_to_write, wbc->nr_to_write)
236 ctf_integer(int, sync_mode, wbc->sync_mode)
237 )
00be8842
MD
238)
239
240#else
241
3bc29f0a 242LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
b87700e3
AG
243 TP_PROTO(struct inode *inode, struct mpage_da_data *mpd),
244
245 TP_ARGS(inode, mpd),
246
f127e61e
MD
247 TP_FIELDS(
248 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
249 ctf_integer(ino_t, ino, inode->i_ino)
250 ctf_integer(__u64, b_blocknr, mpd->b_blocknr)
251 ctf_integer(__u32, b_size, mpd->b_size)
252 ctf_integer(__u32, b_state, mpd->b_state)
253 ctf_integer(unsigned long, first_page, mpd->first_page)
254 ctf_integer(int, io_done, mpd->io_done)
255 ctf_integer(int, pages_written, mpd->pages_written)
7e626201 256 ctf_integer(int, sync_mode, mpd->wbc->sync_mode)
f127e61e 257 )
b87700e3
AG
258)
259
00be8842
MD
260#endif
261
2d042821 262#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
c1b29b59 263
3bc29f0a 264LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent,
c1b29b59
MD
265 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map),
266
267 TP_ARGS(inode, map),
268
f127e61e
MD
269 TP_FIELDS(
270 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
271 ctf_integer(ino_t, ino, inode->i_ino)
272 ctf_integer(__u64, lblk, map->m_lblk)
273 ctf_integer(__u32, len, map->m_len)
274 ctf_integer(__u32, flags, map->m_flags)
275 )
c1b29b59
MD
276)
277
278#endif
279
3bc29f0a 280LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result,
b87700e3
AG
281 TP_PROTO(struct inode *inode, struct writeback_control *wbc,
282 int ret, int pages_written),
283
284 TP_ARGS(inode, wbc, ret, pages_written),
285
f127e61e
MD
286 TP_FIELDS(
287 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
288 ctf_integer(ino_t, ino, inode->i_ino)
289 ctf_integer(int, ret, ret)
290 ctf_integer(int, pages_written, pages_written)
291 ctf_integer(long, pages_skipped, wbc->pages_skipped)
292 ctf_integer(pgoff_t, writeback_index, inode->i_mapping->writeback_index)
f127e61e 293 ctf_integer(int, sync_mode, wbc->sync_mode)
f127e61e 294 )
b87700e3
AG
295)
296
3bc29f0a 297LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op,
b87700e3
AG
298 TP_PROTO(struct page *page),
299
300 TP_ARGS(page),
301
f127e61e
MD
302 TP_FIELDS(
303 ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
304 ctf_integer(ino_t, ino, page->mapping->host->i_ino)
305 ctf_integer(pgoff_t, index, page->index)
306 )
b87700e3
AG
307)
308
3bc29f0a 309LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_writepage,
b87700e3
AG
310
311 TP_PROTO(struct page *page),
312
313 TP_ARGS(page)
314)
b87700e3 315
3bc29f0a 316LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_readpage,
b87700e3
AG
317
318 TP_PROTO(struct page *page),
319
320 TP_ARGS(page)
321)
322
3bc29f0a 323LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_releasepage,
b87700e3
AG
324
325 TP_PROTO(struct page *page),
326
327 TP_ARGS(page)
328)
329
2d042821 330#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 331
3bc29f0a 332LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op,
00be8842
MD
333 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
334
335 TP_ARGS(page, offset, length),
336
f127e61e
MD
337 TP_FIELDS(
338 ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
339 ctf_integer(ino_t, ino, page->mapping->host->i_ino)
340 ctf_integer(pgoff_t, index, page->index)
341 ctf_integer(unsigned int, offset, offset)
342 ctf_integer(unsigned int, length, length)
343 )
00be8842
MD
344)
345
3bc29f0a 346LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_invalidatepage,
00be8842
MD
347 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
348
349 TP_ARGS(page, offset, length)
350)
351
3bc29f0a 352LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_journalled_invalidatepage,
00be8842
MD
353 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
354
355 TP_ARGS(page, offset, length)
356)
357
358#else
359
3bc29f0a 360LTTNG_TRACEPOINT_EVENT(ext4_invalidatepage,
b87700e3
AG
361 TP_PROTO(struct page *page, unsigned long offset),
362
363 TP_ARGS(page, offset),
364
f127e61e
MD
365 TP_FIELDS(
366 ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
367 ctf_integer(ino_t, ino, page->mapping->host->i_ino)
368 ctf_integer(pgoff_t, index, page->index)
369 ctf_integer(unsigned long, offset, offset)
b87700e3 370
f127e61e 371 )
b87700e3 372)
00be8842
MD
373
374#endif
375
3bc29f0a 376LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks,
b87700e3
AG
377 TP_PROTO(struct super_block *sb, unsigned long long blk,
378 unsigned long long count),
379
380 TP_ARGS(sb, blk, count),
381
f127e61e
MD
382 TP_FIELDS(
383 ctf_integer(dev_t, dev, sb->s_dev)
384 ctf_integer(__u64, blk, blk)
385 ctf_integer(__u64, count, count)
386 )
b87700e3
AG
387)
388
3bc29f0a 389LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa,
b87700e3
AG
390 TP_PROTO(struct ext4_allocation_context *ac,
391 struct ext4_prealloc_space *pa),
392
393 TP_ARGS(ac, pa),
394
f127e61e
MD
395 TP_FIELDS(
396 ctf_integer(dev_t, dev, ac->ac_sb->s_dev)
397 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
398 ctf_integer(__u64, pa_pstart, pa->pa_pstart)
399 ctf_integer(__u64, pa_lstart, pa->pa_lstart)
400 ctf_integer(__u32, pa_len, pa->pa_len)
401 )
b87700e3
AG
402)
403
3bc29f0a 404LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_inode_pa,
b87700e3
AG
405
406 TP_PROTO(struct ext4_allocation_context *ac,
407 struct ext4_prealloc_space *pa),
408
409 TP_ARGS(ac, pa)
410)
411
3bc29f0a 412LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_group_pa,
b87700e3
AG
413
414 TP_PROTO(struct ext4_allocation_context *ac,
415 struct ext4_prealloc_space *pa),
416
417 TP_ARGS(ac, pa)
418)
419
3bc29f0a 420LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa,
b87700e3 421 TP_PROTO(
b87700e3
AG
422 struct ext4_prealloc_space *pa,
423 unsigned long long block, unsigned int count),
424
b87700e3 425 TP_ARGS(pa, block, count),
b87700e3 426
f127e61e 427 TP_FIELDS(
f127e61e
MD
428 ctf_integer(dev_t, dev, pa->pa_inode->i_sb->s_dev)
429 ctf_integer(ino_t, ino, pa->pa_inode->i_ino)
f127e61e
MD
430 ctf_integer(__u64, block, block)
431 ctf_integer(__u32, count, count)
432 )
b87700e3
AG
433)
434
2d042821 435#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
3bc29f0a 436LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
b87700e3 437
b87700e3
AG
438 TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa),
439
440 TP_ARGS(sb, pa),
b87700e3 441
aa71c949
MJ
442 TP_FIELDS(
443 ctf_integer(dev_t, dev, sb->s_dev)
444 ctf_integer(__u64, pa_pstart, pa->pa_pstart)
445 ctf_integer(__u32, pa_len, pa->pa_len)
446 )
447)
b87700e3 448#else
aa71c949 449LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
b87700e3 450
aa71c949
MJ
451 TP_PROTO(struct ext4_prealloc_space *pa),
452
453 TP_ARGS(pa),
b87700e3 454
f127e61e 455 TP_FIELDS(
f127e61e 456 ctf_integer(dev_t, dev, pa->pa_inode->i_sb->s_dev)
f127e61e
MD
457 ctf_integer(__u64, pa_pstart, pa->pa_pstart)
458 ctf_integer(__u32, pa_len, pa->pa_len)
459 )
b87700e3 460)
aa71c949 461#endif
b87700e3 462
2d042821 463#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0) || \
b74b25f3 464 LTTNG_KERNEL_RANGE(5,8,6, 5,9,0))
8fe74280
MJ
465LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
466 TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
467
468 TP_ARGS(inode, len, needed),
469
470 TP_FIELDS(
471 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
472 ctf_integer(ino_t, ino, inode->i_ino)
473 ctf_integer(unsigned int, len, len)
474 ctf_integer(unsigned int, needed, needed)
475 )
476)
477#else
3bc29f0a 478LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
b87700e3
AG
479 TP_PROTO(struct inode *inode),
480
481 TP_ARGS(inode),
482
f127e61e
MD
483 TP_FIELDS(
484 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
485 ctf_integer(ino_t, ino, inode->i_ino)
486 )
b87700e3 487)
8fe74280 488#endif
b87700e3 489
3bc29f0a 490LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
b87700e3
AG
491 TP_PROTO(struct super_block *sb, int needed),
492
493 TP_ARGS(sb, needed),
494
f127e61e
MD
495 TP_FIELDS(
496 ctf_integer(dev_t, dev, sb->s_dev)
497 ctf_integer(int, needed, needed)
498 )
b87700e3
AG
499)
500
3bc29f0a 501LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
b87700e3
AG
502 TP_PROTO(struct ext4_allocation_request *ar),
503
504 TP_ARGS(ar),
505
f127e61e
MD
506 TP_FIELDS(
507 ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
508 ctf_integer(ino_t, ino, ar->inode->i_ino)
509 ctf_integer(unsigned int, len, ar->len)
510 ctf_integer(__u32, logical, ar->logical)
511 ctf_integer(__u32, lleft, ar->lleft)
512 ctf_integer(__u32, lright, ar->lright)
513 ctf_integer(__u64, goal, ar->goal)
514 ctf_integer(__u64, pleft, ar->pleft)
515 ctf_integer(__u64, pright, ar->pright)
516 ctf_integer(unsigned int, flags, ar->flags)
517 )
b87700e3
AG
518)
519
3bc29f0a 520LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
b87700e3
AG
521 TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block),
522
523 TP_ARGS(ar, block),
524
f127e61e
MD
525 TP_FIELDS(
526 ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
527 ctf_integer(ino_t, ino, ar->inode->i_ino)
528 ctf_integer(__u64, block, block)
529 ctf_integer(unsigned int, len, ar->len)
530 ctf_integer(__u32, logical, ar->logical)
531 ctf_integer(__u32, lleft, ar->lleft)
532 ctf_integer(__u32, lright, ar->lright)
533 ctf_integer(__u64, goal, ar->goal)
534 ctf_integer(__u64, pleft, ar->pleft)
535 ctf_integer(__u64, pright, ar->pright)
536 ctf_integer(unsigned int, flags, ar->flags)
537 )
b87700e3
AG
538)
539
3bc29f0a 540LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
b87700e3
AG
541 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
542 int flags),
543
544 TP_ARGS(inode, block, count, flags),
b87700e3 545
f127e61e
MD
546 TP_FIELDS(
547 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
548 ctf_integer(ino_t, ino, inode->i_ino)
549 ctf_integer(__u64, block, block)
550 ctf_integer(unsigned long, count, count)
f127e61e
MD
551 ctf_integer(int, flags, flags)
552 ctf_integer(TP_MODE_T, mode, inode->i_mode)
f127e61e 553 )
b87700e3
AG
554)
555
3bc29f0a 556LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter,
b87700e3
AG
557 TP_PROTO(struct file *file, int datasync),
558
559 TP_ARGS(file, datasync),
b87700e3 560
f127e61e 561 TP_FIELDS(
f127e61e
MD
562 ctf_integer(dev_t, dev, file->f_path.dentry->d_inode->i_sb->s_dev)
563 ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
564 ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
f127e61e
MD
565 ctf_integer(int, datasync, datasync)
566 )
b87700e3
AG
567)
568
3bc29f0a 569LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit,
b87700e3
AG
570 TP_PROTO(struct inode *inode, int ret),
571
572 TP_ARGS(inode, ret),
573
f127e61e
MD
574 TP_FIELDS(
575 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
576 ctf_integer(ino_t, ino, inode->i_ino)
577 ctf_integer(int, ret, ret)
578 )
b87700e3 579)
b87700e3 580
3bc29f0a 581LTTNG_TRACEPOINT_EVENT(ext4_sync_fs,
b87700e3
AG
582 TP_PROTO(struct super_block *sb, int wait),
583
584 TP_ARGS(sb, wait),
585
f127e61e
MD
586 TP_FIELDS(
587 ctf_integer(dev_t, dev, sb->s_dev)
588 ctf_integer(int, wait, wait)
b87700e3 589
f127e61e 590 )
b87700e3
AG
591)
592
2d042821 593#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
cf101116
MJ
594LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
595 TP_PROTO(struct inode *inode),
596
597 TP_ARGS(inode),
598
599 TP_FIELDS(
600 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
601 ctf_integer(ino_t, ino, inode->i_ino)
602 ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
603 )
604)
605#else
3bc29f0a 606LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
b87700e3
AG
607 TP_PROTO(struct inode *inode),
608
609 TP_ARGS(inode),
610
f127e61e
MD
611 TP_FIELDS(
612 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
613 ctf_integer(ino_t, ino, inode->i_ino)
614 ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
615 ctf_integer(unsigned int, meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
616 )
b87700e3 617)
cf101116 618#endif
b87700e3 619
3bc29f0a 620LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
b87700e3
AG
621 TP_PROTO(struct ext4_allocation_context *ac),
622
623 TP_ARGS(ac),
624
f127e61e
MD
625 TP_FIELDS(
626 ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
627 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
628 ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
629 ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
630 ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
631 ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
632 ctf_integer(__u32, goal_logical, ac->ac_g_ex.fe_logical)
633 ctf_integer(int, goal_start, ac->ac_g_ex.fe_start)
634 ctf_integer(__u32, goal_group, ac->ac_g_ex.fe_group)
635 ctf_integer(int, goal_len, ac->ac_g_ex.fe_len)
636 ctf_integer(__u32, result_logical, ac->ac_f_ex.fe_logical)
637 ctf_integer(int, result_start, ac->ac_f_ex.fe_start)
638 ctf_integer(__u32, result_group, ac->ac_f_ex.fe_group)
639 ctf_integer(int, result_len, ac->ac_f_ex.fe_len)
640 ctf_integer(__u16, found, ac->ac_found)
641 ctf_integer(__u16, groups, ac->ac_groups_scanned)
642 ctf_integer(__u16, buddy, ac->ac_buddy)
643 ctf_integer(__u16, flags, ac->ac_flags)
644 ctf_integer(__u16, tail, ac->ac_tail)
645 ctf_integer(__u8, cr, ac->ac_criteria)
646 )
b87700e3
AG
647)
648
3bc29f0a 649LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
b87700e3
AG
650 TP_PROTO(struct ext4_allocation_context *ac),
651
652 TP_ARGS(ac),
653
f127e61e
MD
654 TP_FIELDS(
655 ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
656 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
657 ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
658 ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
659 ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
660 ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
661 ctf_integer(__u32, result_logical, ac->ac_b_ex.fe_logical)
662 ctf_integer(int, result_start, ac->ac_b_ex.fe_start)
663 ctf_integer(__u32, result_group, ac->ac_b_ex.fe_group)
664 ctf_integer(int, result_len, ac->ac_b_ex.fe_len)
665 )
b87700e3
AG
666)
667
3bc29f0a 668LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
b87700e3
AG
669 TP_PROTO(struct super_block *sb,
670 struct inode *inode,
671 ext4_group_t group,
672 ext4_grpblk_t start,
673 ext4_grpblk_t len),
674
675 TP_ARGS(sb, inode, group, start, len),
b87700e3 676
f127e61e 677 TP_FIELDS(
f127e61e
MD
678 ctf_integer(dev_t, dev, sb->s_dev)
679 ctf_integer(ino_t, ino, inode ? inode->i_ino : 0)
680 ctf_integer(int, result_start, start)
681 ctf_integer(__u32, result_group, group)
682 ctf_integer(int, result_len, len)
b87700e3
AG
683 )
684)
685
3bc29f0a 686LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_discard,
b87700e3 687
b87700e3
AG
688 TP_PROTO(struct super_block *sb,
689 struct inode *inode,
690 ext4_group_t group,
691 ext4_grpblk_t start,
692 ext4_grpblk_t len),
693
694 TP_ARGS(sb, inode, group, start, len)
b87700e3
AG
695)
696
3bc29f0a 697LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_free,
b87700e3 698
b87700e3
AG
699 TP_PROTO(struct super_block *sb,
700 struct inode *inode,
701 ext4_group_t group,
702 ext4_grpblk_t start,
703 ext4_grpblk_t len),
704
705 TP_ARGS(sb, inode, group, start, len)
b87700e3
AG
706)
707
3bc29f0a 708LTTNG_TRACEPOINT_EVENT(ext4_forget,
b87700e3
AG
709 TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
710
711 TP_ARGS(inode, is_metadata, block),
712
f127e61e
MD
713 TP_FIELDS(
714 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
715 ctf_integer(ino_t, ino, inode->i_ino)
716 ctf_integer(__u64, block, block)
717 ctf_integer(int, is_metadata, is_metadata)
718 ctf_integer(TP_MODE_T, mode, inode->i_mode)
719 )
b87700e3 720)
b87700e3 721
2d042821 722#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
3bc29f0a 723LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
b87700e3
AG
724 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
725
726 TP_ARGS(inode, used_blocks, quota_claim),
cf101116
MJ
727
728 TP_FIELDS(
729 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
730 ctf_integer(ino_t, ino, inode->i_ino)
731 ctf_integer(__u64, i_blocks, inode->i_blocks)
732 ctf_integer(int, used_blocks, used_blocks)
733 ctf_integer(int, reserved_data_blocks,
734 EXT4_I(inode)->i_reserved_data_blocks)
735 ctf_integer(int, quota_claim, quota_claim)
736 ctf_integer(TP_MODE_T, mode, inode->i_mode)
737 )
738)
2d042821 739#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
cf101116
MJ
740LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
741 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
742
743 TP_ARGS(inode, used_blocks, quota_claim),
744
745 TP_FIELDS(
746 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
747 ctf_integer(ino_t, ino, inode->i_ino)
748 ctf_integer(__u64, i_blocks, inode->i_blocks)
749 ctf_integer(int, used_blocks, used_blocks)
750 ctf_integer(int, reserved_data_blocks,
751 EXT4_I(inode)->i_reserved_data_blocks)
752 ctf_integer(int, reserved_meta_blocks,
753 EXT4_I(inode)->i_reserved_meta_blocks)
754 ctf_integer(int, allocated_meta_blocks,
755 EXT4_I(inode)->i_allocated_meta_blocks)
756 ctf_integer(int, quota_claim, quota_claim)
757 ctf_integer(TP_MODE_T, mode, inode->i_mode)
758 )
759)
aa71c949 760#else
cf101116 761LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
b87700e3
AG
762 TP_PROTO(struct inode *inode, int used_blocks),
763
764 TP_ARGS(inode, used_blocks),
b87700e3 765
f127e61e
MD
766 TP_FIELDS(
767 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
768 ctf_integer(ino_t, ino, inode->i_ino)
769 ctf_integer(__u64, i_blocks, inode->i_blocks)
770 ctf_integer(int, used_blocks, used_blocks)
771 ctf_integer(int, reserved_data_blocks,
b87700e3 772 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 773 ctf_integer(int, reserved_meta_blocks,
b87700e3 774 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e 775 ctf_integer(int, allocated_meta_blocks,
b87700e3 776 EXT4_I(inode)->i_allocated_meta_blocks)
f127e61e
MD
777 ctf_integer(TP_MODE_T, mode, inode->i_mode)
778 )
b87700e3 779)
cf101116 780#endif
b87700e3 781
2d042821 782#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
cf101116
MJ
783LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
784 TP_PROTO(struct inode *inode),
785
786 TP_ARGS(inode),
787
788 TP_FIELDS(
789 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
790 ctf_integer(ino_t, ino, inode->i_ino)
791 ctf_integer(__u64, i_blocks, inode->i_blocks)
792 ctf_integer(int, reserved_data_blocks,
793 EXT4_I(inode)->i_reserved_data_blocks)
794 ctf_integer(TP_MODE_T, mode, inode->i_mode)
795 )
796)
2d042821 797#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0))
5780f1e8
MD
798LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
799 TP_PROTO(struct inode *inode),
800
801 TP_ARGS(inode),
802
803 TP_FIELDS(
804 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
805 ctf_integer(ino_t, ino, inode->i_ino)
806 ctf_integer(__u64, i_blocks, inode->i_blocks)
807 ctf_integer(int, reserved_data_blocks,
808 EXT4_I(inode)->i_reserved_data_blocks)
809 ctf_integer(int, reserved_meta_blocks,
810 EXT4_I(inode)->i_reserved_meta_blocks)
811 ctf_integer(TP_MODE_T, mode, inode->i_mode)
812 )
813)
aa71c949 814#else
3bc29f0a 815LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
b87700e3
AG
816 TP_PROTO(struct inode *inode, int md_needed),
817
818 TP_ARGS(inode, md_needed),
819
f127e61e
MD
820 TP_FIELDS(
821 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
822 ctf_integer(ino_t, ino, inode->i_ino)
823 ctf_integer(__u64, i_blocks, inode->i_blocks)
824 ctf_integer(int, md_needed, md_needed)
825 ctf_integer(int, reserved_data_blocks,
b87700e3 826 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 827 ctf_integer(int, reserved_meta_blocks,
b87700e3 828 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e
MD
829 ctf_integer(TP_MODE_T, mode, inode->i_mode)
830 )
b87700e3 831)
cf101116
MJ
832#endif
833
2d042821 834#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
cf101116
MJ
835LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
836 TP_PROTO(struct inode *inode, int freed_blocks),
837
838 TP_ARGS(inode, freed_blocks),
b87700e3 839
cf101116
MJ
840 TP_FIELDS(
841 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
842 ctf_integer(ino_t, ino, inode->i_ino)
843 ctf_integer(__u64, i_blocks, inode->i_blocks)
844 ctf_integer(int, freed_blocks, freed_blocks)
845 ctf_integer(int, reserved_data_blocks,
846 EXT4_I(inode)->i_reserved_data_blocks)
847 ctf_integer(TP_MODE_T, mode, inode->i_mode)
848 )
849)
aa71c949 850#else
3bc29f0a 851LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
b87700e3
AG
852 TP_PROTO(struct inode *inode, int freed_blocks),
853
854 TP_ARGS(inode, freed_blocks),
855
f127e61e
MD
856 TP_FIELDS(
857 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
858 ctf_integer(ino_t, ino, inode->i_ino)
859 ctf_integer(__u64, i_blocks, inode->i_blocks)
860 ctf_integer(int, freed_blocks, freed_blocks)
861 ctf_integer(int, reserved_data_blocks,
b87700e3 862 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 863 ctf_integer(int, reserved_meta_blocks,
b87700e3 864 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e 865 ctf_integer(int, allocated_meta_blocks,
b87700e3 866 EXT4_I(inode)->i_allocated_meta_blocks)
f127e61e
MD
867 ctf_integer(TP_MODE_T, mode, inode->i_mode)
868 )
b87700e3
AG
869)
870#endif
871
3bc29f0a 872LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load,
b87700e3
AG
873 TP_PROTO(struct super_block *sb, unsigned long group),
874
875 TP_ARGS(sb, group),
876
f127e61e
MD
877 TP_FIELDS(
878 ctf_integer(dev_t, dev, sb->s_dev)
879 ctf_integer(__u32, group, group)
880 )
b87700e3
AG
881)
882
3bc29f0a 883LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load,
b87700e3
AG
884
885 TP_PROTO(struct super_block *sb, unsigned long group),
886
887 TP_ARGS(sb, group)
888)
889
3bc29f0a 890LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
b87700e3
AG
891
892 TP_PROTO(struct super_block *sb, unsigned long group),
893
894 TP_ARGS(sb, group)
895)
b87700e3 896
2d042821 897#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
52563d02
MJ
898LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load,
899 TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
900
901 TP_ARGS(sb, group, prefetch),
902
903 TP_FIELDS(
904 ctf_integer(dev_t, dev, sb->s_dev)
905 ctf_integer(__u32, group, group)
906 ctf_integer(bool, prefetch, prefetch)
907 )
908)
909#else
3bc29f0a 910LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
b87700e3
AG
911
912 TP_PROTO(struct super_block *sb, unsigned long group),
913
914 TP_ARGS(sb, group)
915)
52563d02 916#endif
b87700e3 917
3bc29f0a 918LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
b87700e3
AG
919
920 TP_PROTO(struct super_block *sb, unsigned long group),
921
922 TP_ARGS(sb, group)
923)
924
3bc29f0a 925LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter,
b87700e3
AG
926 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
927
928 TP_ARGS(inode, offset, len, rw),
929
f127e61e
MD
930 TP_FIELDS(
931 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
932 ctf_integer(ino_t, ino, inode->i_ino)
933 ctf_integer(loff_t, pos, offset)
934 ctf_integer(unsigned long, len, len)
935 ctf_integer(int, rw, rw)
936 )
b87700e3
AG
937)
938
3bc29f0a 939LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
b87700e3
AG
940 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
941 int rw, int ret),
942
943 TP_ARGS(inode, offset, len, rw, ret),
944
f127e61e
MD
945 TP_FIELDS(
946 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
947 ctf_integer(ino_t, ino, inode->i_ino)
948 ctf_integer(loff_t, pos, offset)
949 ctf_integer(unsigned long, len, len)
950 ctf_integer(int, rw, rw)
951 ctf_integer(int, ret, ret)
952 )
b87700e3
AG
953)
954
3bc29f0a 955LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
11af8f55
MD
956 TP_PROTO(struct inode *inode, loff_t offset,
957 unsigned int max_blocks, int ret),
958
959 TP_ARGS(inode, offset, max_blocks, ret),
960
f127e61e
MD
961 TP_FIELDS(
962 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
963 ctf_integer(ino_t, ino, inode->i_ino)
964 ctf_integer(loff_t, pos, offset)
965 ctf_integer(unsigned int, blocks, max_blocks)
966 ctf_integer(int, ret, ret)
967 )
11af8f55
MD
968)
969
2d042821 970#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
11af8f55 971
3bc29f0a 972LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
b87700e3
AG
973 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
974
975 TP_ARGS(inode, offset, len, mode),
976
f127e61e
MD
977 TP_FIELDS(
978 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
979 ctf_integer(ino_t, ino, inode->i_ino)
980 ctf_integer(loff_t, pos, offset)
981 ctf_integer(loff_t, len, len)
982 ctf_integer(int, mode, mode)
983 )
b87700e3
AG
984)
985
3bc29f0a 986LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter,
b87700e3 987
11af8f55
MD
988 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
989
990 TP_ARGS(inode, offset, len, mode)
991)
992
3bc29f0a 993LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_punch_hole,
11af8f55
MD
994
995 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
996
997 TP_ARGS(inode, offset, len, mode)
998)
999
3bc29f0a 1000LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_zero_range,
11af8f55
MD
1001
1002 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1003
1004 TP_ARGS(inode, offset, len, mode)
1005)
1006
2d042821 1007#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
11af8f55 1008
3bc29f0a 1009LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter,
11af8f55
MD
1010 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1011
1012 TP_ARGS(inode, offset, len, mode),
b87700e3 1013
f127e61e
MD
1014 TP_FIELDS(
1015 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1016 ctf_integer(ino_t, ino, inode->i_ino)
1017 ctf_integer(loff_t, pos, offset)
1018 ctf_integer(loff_t, len, len)
1019 ctf_integer(int, mode, mode)
1020 )
b87700e3
AG
1021)
1022
2d042821 1023#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
c1b29b59 1024
3bc29f0a 1025LTTNG_TRACEPOINT_EVENT(ext4_punch_hole,
c1b29b59
MD
1026 TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
1027
1028 TP_ARGS(inode, offset, len),
1029
f127e61e
MD
1030 TP_FIELDS(
1031 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1032 ctf_integer(ino_t, ino, inode->i_ino)
1033 ctf_integer(loff_t, pos, offset)
1034 ctf_integer(loff_t, len, len)
1035 )
c1b29b59
MD
1036)
1037
2d042821 1038#endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0)) */
11af8f55 1039
2d042821 1040#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
c1b29b59 1041
3bc29f0a 1042LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
b87700e3
AG
1043 TP_PROTO(struct inode *parent, struct dentry *dentry),
1044
1045 TP_ARGS(parent, dentry),
1046
f127e61e
MD
1047 TP_FIELDS(
1048 ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
1049 ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
1050 ctf_integer(ino_t, parent, parent->i_ino)
1051 ctf_integer(loff_t, size, dentry->d_inode->i_size)
1052 )
b87700e3
AG
1053)
1054
3bc29f0a 1055LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
b87700e3
AG
1056 TP_PROTO(struct dentry *dentry, int ret),
1057
1058 TP_ARGS(dentry, ret),
1059
f127e61e
MD
1060 TP_FIELDS(
1061 ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
1062 ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
1063 ctf_integer(int, ret, ret)
1064 )
b87700e3
AG
1065)
1066
3bc29f0a 1067LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
b87700e3
AG
1068 TP_PROTO(struct inode *inode),
1069
1070 TP_ARGS(inode),
1071
f127e61e
MD
1072 TP_FIELDS(
1073 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1074 ctf_integer(ino_t, ino, inode->i_ino)
1075 ctf_integer(unsigned int, blocks, inode->i_blocks)
1076 )
b87700e3
AG
1077)
1078
3bc29f0a 1079LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
b87700e3
AG
1080
1081 TP_PROTO(struct inode *inode),
1082
1083 TP_ARGS(inode)
1084)
1085
3bc29f0a 1086LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_exit,
b87700e3
AG
1087
1088 TP_PROTO(struct inode *inode),
1089
1090 TP_ARGS(inode)
1091)
1092
2d042821 1093#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
b87700e3 1094/* 'ux' is the uninitialized extent. */
3bc29f0a 1095LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
b87700e3
AG
1096 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1097 struct ext4_extent *ux),
1098
1099 TP_ARGS(inode, map, ux),
1100
f127e61e
MD
1101 TP_FIELDS(
1102 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1103 ctf_integer(ino_t, ino, inode->i_ino)
1104 ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
1105 ctf_integer(unsigned, m_len, map->m_len)
1106 ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
1107 ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
1108 ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
1109 )
b87700e3
AG
1110)
1111
1112/*
1113 * 'ux' is the uninitialized extent.
1114 * 'ix' is the initialized extent to which blocks are transferred.
1115 */
3bc29f0a 1116LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath,
b87700e3
AG
1117 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1118 struct ext4_extent *ux, struct ext4_extent *ix),
1119
1120 TP_ARGS(inode, map, ux, ix),
1121
f127e61e
MD
1122 TP_FIELDS(
1123 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1124 ctf_integer(ino_t, ino, inode->i_ino)
1125 ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
1126 ctf_integer(unsigned, m_len, map->m_len)
1127 ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
1128 ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
1129 ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
1130 ctf_integer(ext4_lblk_t, i_lblk, le32_to_cpu(ix->ee_block))
1131 ctf_integer(unsigned, i_len, ext4_ext_get_actual_len(ix))
1132 ctf_integer(ext4_fsblk_t, i_pblk, ext4_ext_pblock(ix))
1133 )
b87700e3
AG
1134)
1135#endif
1136
3bc29f0a 1137LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter,
b87700e3
AG
1138 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1139 unsigned int len, unsigned int flags),
1140
1141 TP_ARGS(inode, lblk, len, flags),
1142
f127e61e
MD
1143 TP_FIELDS(
1144 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1145 ctf_integer(ino_t, ino, inode->i_ino)
1146 ctf_integer(ext4_lblk_t, lblk, lblk)
1147 ctf_integer(unsigned int, len, len)
1148 ctf_integer(unsigned int, flags, flags)
1149 )
b87700e3
AG
1150)
1151
3bc29f0a 1152LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
b87700e3
AG
1153 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1154 unsigned len, unsigned flags),
1155
1156 TP_ARGS(inode, lblk, len, flags)
1157)
1158
3bc29f0a 1159LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
b87700e3
AG
1160 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1161 unsigned len, unsigned flags),
1162
1163 TP_ARGS(inode, lblk, len, flags)
1164)
1165
2d042821 1166#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1167
3bc29f0a 1168LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
00be8842
MD
1169 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
1170 int ret),
1171
1172 TP_ARGS(inode, flags, map, ret),
1173
f127e61e
MD
1174 TP_FIELDS(
1175 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1176 ctf_integer(ino_t, ino, inode->i_ino)
1177 ctf_integer(unsigned int, flags, flags)
1178 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1179 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1180 ctf_integer(unsigned int, len, map->m_len)
1181 ctf_integer(unsigned int, mflags, map->m_flags)
1182 ctf_integer(int, ret, ret)
1183 )
00be8842
MD
1184)
1185
3bc29f0a 1186LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
00be8842
MD
1187 TP_PROTO(struct inode *inode, unsigned flags,
1188 struct ext4_map_blocks *map, int ret),
1189
1190 TP_ARGS(inode, flags, map, ret)
1191)
1192
3bc29f0a 1193LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
00be8842
MD
1194 TP_PROTO(struct inode *inode, unsigned flags,
1195 struct ext4_map_blocks *map, int ret),
1196
1197 TP_ARGS(inode, flags, map, ret)
1198)
1199
2d042821 1200#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
162774b4 1201
3bc29f0a 1202LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
162774b4
MD
1203 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
1204
1205 TP_ARGS(inode, map, ret),
1206
f127e61e
MD
1207 TP_FIELDS(
1208 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1209 ctf_integer(ino_t, ino, inode->i_ino)
f127e61e
MD
1210 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1211 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1212 ctf_integer(unsigned int, len, map->m_len)
1213 ctf_integer(unsigned int, mflags, map->m_flags)
1214 ctf_integer(int, ret, ret)
1215 )
162774b4
MD
1216)
1217
3bc29f0a 1218LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
162774b4
MD
1219 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
1220
1221 TP_ARGS(inode, map, ret)
1222)
1223
3bc29f0a 1224LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
162774b4
MD
1225 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
1226
1227 TP_ARGS(inode, map, ret)
1228)
1229
2d042821 1230#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
162774b4 1231
3bc29f0a 1232LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
b87700e3
AG
1233 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1234 ext4_fsblk_t pblk, unsigned int len, int ret),
1235
1236 TP_ARGS(inode, lblk, pblk, len, ret),
1237
f127e61e
MD
1238 TP_FIELDS(
1239 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1240 ctf_integer(ino_t, ino, inode->i_ino)
1241 ctf_integer(ext4_fsblk_t, pblk, pblk)
1242 ctf_integer(ext4_lblk_t, lblk, lblk)
1243 ctf_integer(unsigned int, len, len)
1244 ctf_integer(int, ret, ret)
1245 )
b87700e3
AG
1246)
1247
3bc29f0a 1248LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
b87700e3
AG
1249 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1250 ext4_fsblk_t pblk, unsigned len, int ret),
1251
1252 TP_ARGS(inode, lblk, pblk, len, ret)
1253)
1254
3bc29f0a 1255LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
b87700e3
AG
1256 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1257 ext4_fsblk_t pblk, unsigned len, int ret),
1258
1259 TP_ARGS(inode, lblk, pblk, len, ret)
1260)
1261
2d042821 1262#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
162774b4 1263
3bc29f0a 1264LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
b87700e3
AG
1265 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
1266
1267 TP_ARGS(inode, lblk, pblk),
1268
f127e61e
MD
1269 TP_FIELDS(
1270 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1271 ctf_integer(ino_t, ino, inode->i_ino)
1272 ctf_integer(ext4_fsblk_t, pblk, pblk)
1273 ctf_integer(ext4_lblk_t, lblk, lblk)
1274 )
b87700e3
AG
1275)
1276
2d042821 1277#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
a28235f8
MJ
1278LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
1279 TP_PROTO(struct super_block *sb, unsigned long ino),
1280
1281 TP_ARGS(sb, ino),
1282
1283 TP_FIELDS(
1284 ctf_integer(dev_t, dev, sb->s_dev)
1285 ctf_integer(ino_t, ino, ino)
1286 )
1287)
1288#else
3bc29f0a 1289LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
b87700e3
AG
1290 TP_PROTO(struct inode *inode),
1291
1292 TP_ARGS(inode),
1293
f127e61e
MD
1294 TP_FIELDS(
1295 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1296 ctf_integer(ino_t, ino, inode->i_ino)
1297 )
b87700e3 1298)
a28235f8 1299#endif
b87700e3 1300
e96d6e06
KS
1301#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0) || \
1302 LTTNG_RHEL_KERNEL_RANGE(4,18,0,240,15,1, 4,19,0,0,0,0))
bb0eb66d
MJ
1303
1304LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
1305 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
1306 int revoke_creds, unsigned long IP),
1307
1308 TP_ARGS(sb, blocks, rsv_blocks, revoke_creds, IP),
1309
1310 TP_FIELDS(
1311 ctf_integer(dev_t, dev, sb->s_dev)
1312 ctf_integer(unsigned long, ip, IP)
1313 ctf_integer(int, blocks, blocks)
1314 ctf_integer(int, rsv_blocks, rsv_blocks)
1315 ctf_integer(int, revoke_creds, revoke_creds)
1316 )
1317)
1318
1319LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
1320 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
1321
1322 TP_ARGS(sb, blocks, IP),
1323
1324 TP_FIELDS(
1325 ctf_integer(dev_t, dev, sb->s_dev)
1326 ctf_integer(unsigned long, ip, IP)
1327 ctf_integer(int, blocks, blocks)
1328 )
1329)
1330
2d042821 1331#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1332
3bc29f0a 1333LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
00be8842
MD
1334 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
1335 unsigned long IP),
1336
1337 TP_ARGS(sb, blocks, rsv_blocks, IP),
1338
f127e61e
MD
1339 TP_FIELDS(
1340 ctf_integer(dev_t, dev, sb->s_dev)
1341 ctf_integer(unsigned long, ip, IP)
1342 ctf_integer(int, blocks, blocks)
1343 ctf_integer(int, rsv_blocks, rsv_blocks)
1344 )
00be8842
MD
1345)
1346
3bc29f0a 1347LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
00be8842
MD
1348 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
1349
1350 TP_ARGS(sb, blocks, IP),
1351
f127e61e
MD
1352 TP_FIELDS(
1353 ctf_integer(dev_t, dev, sb->s_dev)
1354 ctf_integer(unsigned long, ip, IP)
1355 ctf_integer(int, blocks, blocks)
1356 )
00be8842
MD
1357)
1358
2d042821 1359#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
00be8842 1360
3bc29f0a 1361LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
b87700e3
AG
1362 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
1363
1364 TP_ARGS(sb, nblocks, IP),
1365
f127e61e
MD
1366 TP_FIELDS(
1367 ctf_integer(dev_t, dev, sb->s_dev)
1368 ctf_integer(unsigned long, ip, IP)
1369 ctf_integer(int, nblocks, nblocks)
1370 )
b87700e3
AG
1371)
1372
3bc29f0a 1373LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim,
b87700e3
AG
1374 TP_PROTO(struct super_block *sb,
1375 ext4_group_t group,
1376 ext4_grpblk_t start,
1377 ext4_grpblk_t len),
1378
1379 TP_ARGS(sb, group, start, len),
1380
f127e61e
MD
1381 TP_FIELDS(
1382 ctf_integer(int, dev_major, MAJOR(sb->s_dev))
1383 ctf_integer(int, dev_minor, MINOR(sb->s_dev))
1384 ctf_integer(__u32, group, group)
1385 ctf_integer(int, start, start)
1386 ctf_integer(int, len, len)
1387 )
b87700e3
AG
1388)
1389
3bc29f0a 1390LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_extent,
b87700e3
AG
1391
1392 TP_PROTO(struct super_block *sb,
1393 ext4_group_t group,
1394 ext4_grpblk_t start,
1395 ext4_grpblk_t len),
1396
1397 TP_ARGS(sb, group, start, len)
1398)
1399
3bc29f0a 1400LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_all_free,
b87700e3
AG
1401
1402 TP_PROTO(struct super_block *sb,
1403 ext4_group_t group,
1404 ext4_grpblk_t start,
1405 ext4_grpblk_t len),
1406
1407 TP_ARGS(sb, group, start, len)
1408)
1409#endif
1410
2d042821 1411#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
162774b4 1412
3bc29f0a 1413LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
2d042821 1414#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
162774b4
MD
1415 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
1416 unsigned int allocated, ext4_fsblk_t newblock),
1417
1418 TP_ARGS(inode, map, flags, allocated, newblock),
2d042821 1419#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
b87700e3
AG
1420 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1421 unsigned int allocated, ext4_fsblk_t newblock),
1422
1423 TP_ARGS(inode, map, allocated, newblock),
2d042821 1424#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
b87700e3 1425
f127e61e
MD
1426 TP_FIELDS(
1427 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1428 ctf_integer(ino_t, ino, inode->i_ino)
2d042821 1429#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
f127e61e 1430 ctf_integer(int, flags, flags)
2d042821 1431#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
f127e61e 1432 ctf_integer(int, flags, map->m_flags)
2d042821 1433#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
f127e61e
MD
1434 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1435 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1436 ctf_integer(unsigned int, len, map->m_len)
1437 ctf_integer(unsigned int, allocated, allocated)
1438 ctf_integer(ext4_fsblk_t, newblk, newblock)
1439 )
b87700e3
AG
1440)
1441
3bc29f0a 1442LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
b87700e3
AG
1443 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
1444
1445 TP_ARGS(sb, map, ret),
1446
f127e61e
MD
1447 TP_FIELDS(
1448 ctf_integer(dev_t, dev, sb->s_dev)
1449 ctf_integer(unsigned int, flags, map->m_flags)
1450 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1451 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1452 ctf_integer(unsigned int, len, map->m_len)
1453 ctf_integer(int, ret, ret)
1454 )
b87700e3
AG
1455)
1456
3bc29f0a 1457LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
b87700e3
AG
1458 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
1459 ext4_fsblk_t start),
1460
1461 TP_ARGS(inode, lblk, len, start),
1462
f127e61e
MD
1463 TP_FIELDS(
1464 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1465 ctf_integer(ino_t, ino, inode->i_ino)
1466 ctf_integer(ext4_lblk_t, lblk, lblk)
1467 ctf_integer(unsigned int, len, len)
1468 ctf_integer(ext4_fsblk_t, start, start)
1469 )
b87700e3
AG
1470)
1471
3bc29f0a 1472LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
b87700e3
AG
1473 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
1474
1475 TP_ARGS(inode, lblk, ret),
1476
f127e61e
MD
1477 TP_FIELDS(
1478 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1479 ctf_integer(ino_t, ino, inode->i_ino)
1480 ctf_integer(ext4_lblk_t, lblk, lblk)
1481 ctf_integer(int, ret, ret)
1482 )
b87700e3
AG
1483)
1484
3bc29f0a 1485LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
b87700e3
AG
1486 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
1487 int reverse, int found, ext4_lblk_t found_blk),
1488
1489 TP_ARGS(inode, from, to, reverse, found, found_blk),
1490
f127e61e
MD
1491 TP_FIELDS(
1492 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1493 ctf_integer(ino_t, ino, inode->i_ino)
1494 ctf_integer(ext4_lblk_t, from, from)
1495 ctf_integer(ext4_lblk_t, to, to)
1496 ctf_integer(int, reverse, reverse)
1497 ctf_integer(int, found, found)
1498 ctf_integer(ext4_lblk_t, found_blk, found_blk)
1499 )
b87700e3
AG
1500)
1501
3bc29f0a 1502LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
b87700e3
AG
1503 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
1504
1505 TP_ARGS(inode, lblk, len),
1506
f127e61e
MD
1507 TP_FIELDS(
1508 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1509 ctf_integer(ino_t, ino, inode->i_ino)
1510 ctf_integer(ext4_lblk_t, lblk, lblk)
1511 ctf_integer(unsigned int, len, len)
1512 )
b87700e3
AG
1513)
1514
3bc29f0a 1515LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
b87700e3
AG
1516 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
1517 unsigned short len),
1518
1519 TP_ARGS(inode, lblk, pblk, len),
1520
f127e61e
MD
1521 TP_FIELDS(
1522 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1523 ctf_integer(ino_t, ino, inode->i_ino)
1524 ctf_integer(ext4_fsblk_t, pblk, pblk)
1525 ctf_integer(ext4_lblk_t, lblk, lblk)
1526 ctf_integer(unsigned short, len, len)
1527 )
b87700e3
AG
1528)
1529
2d042821 1530#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
b77fd8ae 1531 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1532
1533LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
1534 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1535 ext4_lblk_t from, ext4_fsblk_t to,
1536 struct partial_cluster *pc),
1537
1538 TP_ARGS(inode, ex, from, to, pc),
1539
1540 TP_FIELDS(
1541 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1542 ctf_integer(ino_t, ino, inode->i_ino)
1543 ctf_integer(ext4_lblk_t, from, from)
1544 ctf_integer(ext4_lblk_t, to, to)
1545 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1546 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1547 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1548 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1549 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1550 ctf_integer(int, pc_state, pc->state)
1551 )
1552)
1553
2d042821 1554#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1555
3bc29f0a 1556LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
00be8842
MD
1557 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1558 ext4_lblk_t from, ext4_fsblk_t to,
1559 long long partial_cluster),
1560
1561 TP_ARGS(inode, ex, from, to, partial_cluster),
1562
f127e61e
MD
1563 TP_FIELDS(
1564 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1565 ctf_integer(ino_t, ino, inode->i_ino)
1566 ctf_integer(ext4_lblk_t, from, from)
1567 ctf_integer(ext4_lblk_t, to, to)
1568 ctf_integer(long long, partial, partial_cluster)
1569 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1570 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1571 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1572 )
00be8842
MD
1573)
1574
1575#else
1576
3bc29f0a 1577LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
b87700e3
AG
1578 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1579 ext4_lblk_t from, ext4_fsblk_t to,
1580 ext4_fsblk_t partial_cluster),
1581
1582 TP_ARGS(inode, ex, from, to, partial_cluster),
1583
f127e61e
MD
1584 TP_FIELDS(
1585 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1586 ctf_integer(ino_t, ino, inode->i_ino)
1587 ctf_integer(ext4_lblk_t, from, from)
1588 ctf_integer(ext4_lblk_t, to, to)
1589 ctf_integer(ext4_fsblk_t, partial, partial_cluster)
1590 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1591 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1592 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1593 )
b87700e3
AG
1594)
1595
00be8842
MD
1596#endif
1597
2d042821 1598#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
b77fd8ae 1599 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1600
1601LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
1602 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1603 struct ext4_extent *ex,
1604 struct partial_cluster *pc),
1605
1606 TP_ARGS(inode, start, ex, pc),
1607
1608 TP_FIELDS(
1609 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1610 ctf_integer(ino_t, ino, inode->i_ino)
1611 ctf_integer(ext4_lblk_t, start, start)
1612 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1613 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1614 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1615 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1616 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1617 ctf_integer(int, pc_state, pc->state)
1618 )
1619)
1620
2d042821 1621#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1622
3bc29f0a 1623LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
00be8842
MD
1624 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1625 struct ext4_extent *ex,
1626 long long partial_cluster),
1627
1628 TP_ARGS(inode, start, ex, partial_cluster),
1629
f127e61e
MD
1630 TP_FIELDS(
1631 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1632 ctf_integer(ino_t, ino, inode->i_ino)
1633 ctf_integer(long long, partial, partial_cluster)
1634 ctf_integer(ext4_lblk_t, start, start)
1635 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1636 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1637 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1638 )
00be8842
MD
1639)
1640
1641#else
1642
3bc29f0a 1643LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
b87700e3
AG
1644 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1645 struct ext4_extent *ex, ext4_fsblk_t partial_cluster),
1646
1647 TP_ARGS(inode, start, ex, partial_cluster),
1648
f127e61e
MD
1649 TP_FIELDS(
1650 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1651 ctf_integer(ino_t, ino, inode->i_ino)
1652 ctf_integer(long long, partial, partial_cluster)
1653 ctf_integer(ext4_lblk_t, start, start)
1654 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1655 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1656 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1657 )
b87700e3
AG
1658)
1659
00be8842
MD
1660#endif
1661
3bc29f0a 1662LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx,
b87700e3
AG
1663 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
1664
1665 TP_ARGS(inode, pblk),
1666
f127e61e
MD
1667 TP_FIELDS(
1668 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1669 ctf_integer(ino_t, ino, inode->i_ino)
1670 ctf_integer(ext4_fsblk_t, pblk, pblk)
1671 )
b87700e3
AG
1672)
1673
2d042821 1674#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1675
3bc29f0a 1676LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
00be8842
MD
1677 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1678 ext4_lblk_t end, int depth),
1679
1680 TP_ARGS(inode, start, end, depth),
1681
f127e61e
MD
1682 TP_FIELDS(
1683 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1684 ctf_integer(ino_t, ino, inode->i_ino)
1685 ctf_integer(ext4_lblk_t, start, start)
1686 ctf_integer(ext4_lblk_t, end, end)
1687 ctf_integer(int, depth, depth)
1688 )
00be8842
MD
1689)
1690
1691#else
1692
3bc29f0a 1693LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
b87700e3
AG
1694 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth),
1695
1696 TP_ARGS(inode, start, depth),
1697
f127e61e
MD
1698 TP_FIELDS(
1699 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1700 ctf_integer(ino_t, ino, inode->i_ino)
1701 ctf_integer(ext4_lblk_t, start, start)
1702 ctf_integer(int, depth, depth)
1703 )
b87700e3
AG
1704)
1705
00be8842
MD
1706#endif
1707
2d042821 1708#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
b77fd8ae 1709 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1710
1711LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
1712 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
1713 int depth, struct partial_cluster *pc, __le16 eh_entries),
1714
1715 TP_ARGS(inode, start, end, depth, pc, eh_entries),
1716
1717 TP_FIELDS(
1718 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1719 ctf_integer(ino_t, ino, inode->i_ino)
1720 ctf_integer(ext4_lblk_t, start, start)
1721 ctf_integer(ext4_lblk_t, end, end)
1722 ctf_integer(int, depth, depth)
1723 ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
1724 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1725 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1726 ctf_integer(int, pc_state, pc->state)
1727 )
1728)
1729
2d042821 1730#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1731
3bc29f0a 1732LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
00be8842
MD
1733 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
1734 int depth, long long partial, __le16 eh_entries),
1735
1736 TP_ARGS(inode, start, end, depth, partial, eh_entries),
1737
f127e61e
MD
1738 TP_FIELDS(
1739 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1740 ctf_integer(ino_t, ino, inode->i_ino)
1741 ctf_integer(ext4_lblk_t, start, start)
1742 ctf_integer(ext4_lblk_t, end, end)
1743 ctf_integer(int, depth, depth)
1744 ctf_integer(long long, partial, partial)
1745 ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
1746 )
00be8842
MD
1747)
1748
1749#else
1750
3bc29f0a 1751LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
b87700e3
AG
1752 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth,
1753 ext4_lblk_t partial, unsigned short eh_entries),
1754
1755 TP_ARGS(inode, start, depth, partial, eh_entries),
1756
f127e61e
MD
1757 TP_FIELDS(
1758 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1759 ctf_integer(ino_t, ino, inode->i_ino)
1760 ctf_integer(ext4_lblk_t, start, start)
1761 ctf_integer(int, depth, depth)
1762 ctf_integer(ext4_lblk_t, partial, partial)
1763 ctf_integer(unsigned short, eh_entries, eh_entries)
1764 )
b87700e3 1765)
00be8842
MD
1766
1767#endif
1768
1769#endif
1770
2d042821 1771#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
39aee4a0 1772
3bc29f0a 1773LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
39aee4a0
MD
1774 TP_PROTO(struct inode *inode, struct extent_status *es),
1775
1776 TP_ARGS(inode, es),
1777
f127e61e
MD
1778 TP_FIELDS(
1779 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1780 ctf_integer(ino_t, ino, inode->i_ino)
1781 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1782 ctf_integer(ext4_lblk_t, len, es->es_len)
1783 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1784 ctf_integer(char, status, ext4_es_status(es))
1785 )
39aee4a0
MD
1786)
1787
3bc29f0a 1788LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent,
39aee4a0
MD
1789 TP_PROTO(struct inode *inode, struct extent_status *es),
1790
1791 TP_ARGS(inode, es)
1792)
1793
3bc29f0a 1794LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_cache_extent,
39aee4a0
MD
1795 TP_PROTO(struct inode *inode, struct extent_status *es),
1796
1797 TP_ARGS(inode, es)
1798)
1799
2d042821 1800#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
00be8842 1801
3bc29f0a 1802LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent,
00be8842
MD
1803 TP_PROTO(struct inode *inode, struct extent_status *es),
1804
1805 TP_ARGS(inode, es),
1806
f127e61e
MD
1807 TP_FIELDS(
1808 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1809 ctf_integer(ino_t, ino, inode->i_ino)
1810 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1811 ctf_integer(ext4_lblk_t, len, es->es_len)
1812 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1813 ctf_integer(char, status, ext4_es_status(es) >> 60)
1814 )
00be8842
MD
1815)
1816
3bc29f0a 1817LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent,
00be8842
MD
1818 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len),
1819
1820 TP_ARGS(inode, lblk, len),
1821
f127e61e
MD
1822 TP_FIELDS(
1823 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1824 ctf_integer(ino_t, ino, inode->i_ino)
1825 ctf_integer(loff_t, lblk, lblk)
1826 ctf_integer(loff_t, len, len)
1827 )
00be8842
MD
1828)
1829
3bc29f0a 1830LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter,
00be8842
MD
1831 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
1832
1833 TP_ARGS(inode, lblk),
1834
f127e61e
MD
1835 TP_FIELDS(
1836 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1837 ctf_integer(ino_t, ino, inode->i_ino)
1838 ctf_integer(ext4_lblk_t, lblk, lblk)
1839 )
00be8842
MD
1840)
1841
3bc29f0a 1842LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit,
00be8842
MD
1843 TP_PROTO(struct inode *inode, struct extent_status *es),
1844
1845 TP_ARGS(inode, es),
1846
f127e61e
MD
1847 TP_FIELDS(
1848 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1849 ctf_integer(ino_t, ino, inode->i_ino)
1850 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1851 ctf_integer(ext4_lblk_t, len, es->es_len)
1852 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1853 ctf_integer(char, status, ext4_es_status(es) >> 60)
1854 )
00be8842
MD
1855)
1856
3bc29f0a 1857LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter,
00be8842
MD
1858 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
1859
1860 TP_ARGS(inode, lblk),
1861
f127e61e
MD
1862 TP_FIELDS(
1863 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1864 ctf_integer(ino_t, ino, inode->i_ino)
1865 ctf_integer(ext4_lblk_t, lblk, lblk)
1866 )
00be8842
MD
1867)
1868
3bc29f0a 1869LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit,
00be8842
MD
1870 TP_PROTO(struct inode *inode, struct extent_status *es,
1871 int found),
1872
1873 TP_ARGS(inode, es, found),
1874
f127e61e
MD
1875 TP_FIELDS(
1876 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1877 ctf_integer(ino_t, ino, inode->i_ino)
1878 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1879 ctf_integer(ext4_lblk_t, len, es->es_len)
1880 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1881 ctf_integer(char, status, ext4_es_status(es) >> 60)
1882 ctf_integer(int, found, found)
1883 )
00be8842
MD
1884)
1885
3bc29f0a 1886LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter,
00be8842
MD
1887 TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt),
1888
1889 TP_ARGS(sb, nr_to_scan, cache_cnt),
1890
f127e61e
MD
1891 TP_FIELDS(
1892 ctf_integer(dev_t, dev, sb->s_dev)
1893 ctf_integer(int, nr_to_scan, nr_to_scan)
1894 ctf_integer(int, cache_cnt, cache_cnt)
1895 )
00be8842
MD
1896)
1897
3bc29f0a 1898LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
00be8842
MD
1899 TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt),
1900
1901 TP_ARGS(sb, shrunk_nr, cache_cnt),
1902
f127e61e
MD
1903 TP_FIELDS(
1904 ctf_integer(dev_t, dev, sb->s_dev)
1905 ctf_integer(int, shrunk_nr, shrunk_nr)
1906 ctf_integer(int, cache_cnt, cache_cnt)
1907 )
00be8842
MD
1908)
1909
b87700e3
AG
1910#endif
1911
2d042821 1912#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
a28235f8
MJ
1913LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan,
1914 TP_PROTO(struct super_block *sb, int error, int off),
1915
1916 TP_ARGS(sb, error, off),
1917
1918 TP_FIELDS(
1919 ctf_integer(dev_t, dev, sb->s_dev)
1920 ctf_integer(int, error, error)
1921 ctf_integer(int, off, off)
1922 )
1923)
1924
1925LTTNG_TRACEPOINT_EVENT(ext4_fc_replay,
1926 TP_PROTO(struct super_block *sb, int tag, int ino, int priv1, int priv2),
1927
1928 TP_ARGS(sb, tag, ino, priv1, priv2),
1929
1930 TP_FIELDS(
1931 ctf_integer(dev_t, dev, sb->s_dev)
1932 ctf_integer(int, tag, tag)
1933 ctf_integer(int, ino, ino)
1934 ctf_integer(int, priv1, priv1)
1935 ctf_integer(int, priv2, priv2)
1936 )
1937)
1938#endif
1939
3bc29f0a 1940#endif /* LTTNG_TRACE_EXT4_H */
b87700e3
AG
1941
1942/* This part must be outside protection */
6ec43db8 1943#include <probes/define_trace.h>
This page took 0.143069 seconds and 4 git commands to generate.