fix: ext4: limit the length of per-inode prealloc list (v5.9)
[lttng-modules.git] / include / instrumentation / events / ext4.h
CommitLineData
b7cdc182 1/* SPDX-License-Identifier: GPL-2.0-only */
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
3b4aafcb 8#include <lttng/tracepoint-event.h>
b87700e3 9#include <linux/writeback.h>
b87700e3
AG
10#include <linux/version.h>
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;
20#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
21struct ext4_extent;
22#endif
23#endif
24
25#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
26#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
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)
b87700e3 40#if (LINUX_VERSION_CODE >= 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)
2c054599 109 ctf_integer_hex(unsigned long, ip, IP)
f127e61e 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
00be8842
MD
223#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
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
c1b29b59
MD
262#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
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
00be8842
MD
330#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
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
aa71c949 435#if (LINUX_VERSION_CODE >= 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
347a7ba0
MJ
463#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
464LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
465 TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
466
467 TP_ARGS(inode, len, needed),
468
469 TP_FIELDS(
470 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
471 ctf_integer(ino_t, ino, inode->i_ino)
472 ctf_integer(unsigned int, len, len)
473 ctf_integer(unsigned int, needed, needed)
474 )
475)
476#else
3bc29f0a 477LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
b87700e3
AG
478 TP_PROTO(struct inode *inode),
479
480 TP_ARGS(inode),
481
f127e61e
MD
482 TP_FIELDS(
483 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
484 ctf_integer(ino_t, ino, inode->i_ino)
485 )
b87700e3 486)
347a7ba0 487#endif
b87700e3 488
3bc29f0a 489LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
b87700e3
AG
490 TP_PROTO(struct super_block *sb, int needed),
491
492 TP_ARGS(sb, needed),
493
f127e61e
MD
494 TP_FIELDS(
495 ctf_integer(dev_t, dev, sb->s_dev)
496 ctf_integer(int, needed, needed)
497 )
b87700e3
AG
498)
499
3bc29f0a 500LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
b87700e3
AG
501 TP_PROTO(struct ext4_allocation_request *ar),
502
503 TP_ARGS(ar),
504
f127e61e
MD
505 TP_FIELDS(
506 ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
507 ctf_integer(ino_t, ino, ar->inode->i_ino)
508 ctf_integer(unsigned int, len, ar->len)
509 ctf_integer(__u32, logical, ar->logical)
510 ctf_integer(__u32, lleft, ar->lleft)
511 ctf_integer(__u32, lright, ar->lright)
512 ctf_integer(__u64, goal, ar->goal)
513 ctf_integer(__u64, pleft, ar->pleft)
514 ctf_integer(__u64, pright, ar->pright)
515 ctf_integer(unsigned int, flags, ar->flags)
516 )
b87700e3
AG
517)
518
3bc29f0a 519LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
b87700e3
AG
520 TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block),
521
522 TP_ARGS(ar, block),
523
f127e61e
MD
524 TP_FIELDS(
525 ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
526 ctf_integer(ino_t, ino, ar->inode->i_ino)
527 ctf_integer(__u64, block, block)
528 ctf_integer(unsigned int, len, ar->len)
529 ctf_integer(__u32, logical, ar->logical)
530 ctf_integer(__u32, lleft, ar->lleft)
531 ctf_integer(__u32, lright, ar->lright)
532 ctf_integer(__u64, goal, ar->goal)
533 ctf_integer(__u64, pleft, ar->pleft)
534 ctf_integer(__u64, pright, ar->pright)
535 ctf_integer(unsigned int, flags, ar->flags)
536 )
b87700e3
AG
537)
538
3bc29f0a 539LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
b87700e3
AG
540 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
541 int flags),
542
543 TP_ARGS(inode, block, count, flags),
b87700e3 544
f127e61e
MD
545 TP_FIELDS(
546 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
547 ctf_integer(ino_t, ino, inode->i_ino)
548 ctf_integer(__u64, block, block)
549 ctf_integer(unsigned long, count, count)
f127e61e
MD
550 ctf_integer(int, flags, flags)
551 ctf_integer(TP_MODE_T, mode, inode->i_mode)
f127e61e 552 )
b87700e3
AG
553)
554
3bc29f0a 555LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter,
b87700e3
AG
556 TP_PROTO(struct file *file, int datasync),
557
558 TP_ARGS(file, datasync),
b87700e3 559
f127e61e 560 TP_FIELDS(
f127e61e
MD
561 ctf_integer(dev_t, dev, file->f_path.dentry->d_inode->i_sb->s_dev)
562 ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
563 ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
f127e61e
MD
564 ctf_integer(int, datasync, datasync)
565 )
b87700e3
AG
566)
567
3bc29f0a 568LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit,
b87700e3
AG
569 TP_PROTO(struct inode *inode, int ret),
570
571 TP_ARGS(inode, ret),
572
f127e61e
MD
573 TP_FIELDS(
574 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
575 ctf_integer(ino_t, ino, inode->i_ino)
576 ctf_integer(int, ret, ret)
577 )
b87700e3 578)
b87700e3 579
3bc29f0a 580LTTNG_TRACEPOINT_EVENT(ext4_sync_fs,
b87700e3
AG
581 TP_PROTO(struct super_block *sb, int wait),
582
583 TP_ARGS(sb, wait),
584
f127e61e
MD
585 TP_FIELDS(
586 ctf_integer(dev_t, dev, sb->s_dev)
587 ctf_integer(int, wait, wait)
b87700e3 588
f127e61e 589 )
b87700e3
AG
590)
591
cf101116
MJ
592#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
593LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
594 TP_PROTO(struct inode *inode),
595
596 TP_ARGS(inode),
597
598 TP_FIELDS(
599 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
600 ctf_integer(ino_t, ino, inode->i_ino)
601 ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
602 )
603)
604#else
3bc29f0a 605LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
b87700e3
AG
606 TP_PROTO(struct inode *inode),
607
608 TP_ARGS(inode),
609
f127e61e
MD
610 TP_FIELDS(
611 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
612 ctf_integer(ino_t, ino, inode->i_ino)
613 ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
614 ctf_integer(unsigned int, meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
615 )
b87700e3 616)
cf101116 617#endif
b87700e3 618
3bc29f0a 619LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
b87700e3
AG
620 TP_PROTO(struct ext4_allocation_context *ac),
621
622 TP_ARGS(ac),
623
f127e61e
MD
624 TP_FIELDS(
625 ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
626 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
627 ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
628 ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
629 ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
630 ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
631 ctf_integer(__u32, goal_logical, ac->ac_g_ex.fe_logical)
632 ctf_integer(int, goal_start, ac->ac_g_ex.fe_start)
633 ctf_integer(__u32, goal_group, ac->ac_g_ex.fe_group)
634 ctf_integer(int, goal_len, ac->ac_g_ex.fe_len)
635 ctf_integer(__u32, result_logical, ac->ac_f_ex.fe_logical)
636 ctf_integer(int, result_start, ac->ac_f_ex.fe_start)
637 ctf_integer(__u32, result_group, ac->ac_f_ex.fe_group)
638 ctf_integer(int, result_len, ac->ac_f_ex.fe_len)
639 ctf_integer(__u16, found, ac->ac_found)
640 ctf_integer(__u16, groups, ac->ac_groups_scanned)
641 ctf_integer(__u16, buddy, ac->ac_buddy)
642 ctf_integer(__u16, flags, ac->ac_flags)
643 ctf_integer(__u16, tail, ac->ac_tail)
644 ctf_integer(__u8, cr, ac->ac_criteria)
645 )
b87700e3
AG
646)
647
3bc29f0a 648LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
b87700e3
AG
649 TP_PROTO(struct ext4_allocation_context *ac),
650
651 TP_ARGS(ac),
652
f127e61e
MD
653 TP_FIELDS(
654 ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
655 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
656 ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
657 ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
658 ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
659 ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
660 ctf_integer(__u32, result_logical, ac->ac_b_ex.fe_logical)
661 ctf_integer(int, result_start, ac->ac_b_ex.fe_start)
662 ctf_integer(__u32, result_group, ac->ac_b_ex.fe_group)
663 ctf_integer(int, result_len, ac->ac_b_ex.fe_len)
664 )
b87700e3
AG
665)
666
3bc29f0a 667LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
b87700e3
AG
668 TP_PROTO(struct super_block *sb,
669 struct inode *inode,
670 ext4_group_t group,
671 ext4_grpblk_t start,
672 ext4_grpblk_t len),
673
674 TP_ARGS(sb, inode, group, start, len),
b87700e3 675
f127e61e 676 TP_FIELDS(
f127e61e
MD
677 ctf_integer(dev_t, dev, sb->s_dev)
678 ctf_integer(ino_t, ino, inode ? inode->i_ino : 0)
679 ctf_integer(int, result_start, start)
680 ctf_integer(__u32, result_group, group)
681 ctf_integer(int, result_len, len)
b87700e3
AG
682 )
683)
684
3bc29f0a 685LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_discard,
b87700e3 686
b87700e3
AG
687 TP_PROTO(struct super_block *sb,
688 struct inode *inode,
689 ext4_group_t group,
690 ext4_grpblk_t start,
691 ext4_grpblk_t len),
692
693 TP_ARGS(sb, inode, group, start, len)
b87700e3
AG
694)
695
3bc29f0a 696LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_free,
b87700e3 697
b87700e3
AG
698 TP_PROTO(struct super_block *sb,
699 struct inode *inode,
700 ext4_group_t group,
701 ext4_grpblk_t start,
702 ext4_grpblk_t len),
703
704 TP_ARGS(sb, inode, group, start, len)
b87700e3
AG
705)
706
3bc29f0a 707LTTNG_TRACEPOINT_EVENT(ext4_forget,
b87700e3
AG
708 TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
709
710 TP_ARGS(inode, is_metadata, block),
711
f127e61e
MD
712 TP_FIELDS(
713 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
714 ctf_integer(ino_t, ino, inode->i_ino)
715 ctf_integer(__u64, block, block)
716 ctf_integer(int, is_metadata, is_metadata)
717 ctf_integer(TP_MODE_T, mode, inode->i_mode)
718 )
b87700e3 719)
b87700e3 720
cf101116 721#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
3bc29f0a 722LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
b87700e3
AG
723 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
724
725 TP_ARGS(inode, used_blocks, quota_claim),
cf101116
MJ
726
727 TP_FIELDS(
728 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
729 ctf_integer(ino_t, ino, inode->i_ino)
730 ctf_integer(__u64, i_blocks, inode->i_blocks)
731 ctf_integer(int, used_blocks, used_blocks)
732 ctf_integer(int, reserved_data_blocks,
733 EXT4_I(inode)->i_reserved_data_blocks)
734 ctf_integer(int, quota_claim, quota_claim)
735 ctf_integer(TP_MODE_T, mode, inode->i_mode)
736 )
737)
738#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
739LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
740 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
741
742 TP_ARGS(inode, used_blocks, quota_claim),
743
744 TP_FIELDS(
745 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
746 ctf_integer(ino_t, ino, inode->i_ino)
747 ctf_integer(__u64, i_blocks, inode->i_blocks)
748 ctf_integer(int, used_blocks, used_blocks)
749 ctf_integer(int, reserved_data_blocks,
750 EXT4_I(inode)->i_reserved_data_blocks)
751 ctf_integer(int, reserved_meta_blocks,
752 EXT4_I(inode)->i_reserved_meta_blocks)
753 ctf_integer(int, allocated_meta_blocks,
754 EXT4_I(inode)->i_allocated_meta_blocks)
755 ctf_integer(int, quota_claim, quota_claim)
756 ctf_integer(TP_MODE_T, mode, inode->i_mode)
757 )
758)
aa71c949 759#else
cf101116 760LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
b87700e3
AG
761 TP_PROTO(struct inode *inode, int used_blocks),
762
763 TP_ARGS(inode, used_blocks),
b87700e3 764
f127e61e
MD
765 TP_FIELDS(
766 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
767 ctf_integer(ino_t, ino, inode->i_ino)
768 ctf_integer(__u64, i_blocks, inode->i_blocks)
769 ctf_integer(int, used_blocks, used_blocks)
770 ctf_integer(int, reserved_data_blocks,
b87700e3 771 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 772 ctf_integer(int, reserved_meta_blocks,
b87700e3 773 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e 774 ctf_integer(int, allocated_meta_blocks,
b87700e3 775 EXT4_I(inode)->i_allocated_meta_blocks)
f127e61e
MD
776 ctf_integer(TP_MODE_T, mode, inode->i_mode)
777 )
b87700e3 778)
cf101116 779#endif
b87700e3 780
cf101116
MJ
781#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
782LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
783 TP_PROTO(struct inode *inode),
784
785 TP_ARGS(inode),
786
787 TP_FIELDS(
788 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
789 ctf_integer(ino_t, ino, inode->i_ino)
790 ctf_integer(__u64, i_blocks, inode->i_blocks)
791 ctf_integer(int, reserved_data_blocks,
792 EXT4_I(inode)->i_reserved_data_blocks)
793 ctf_integer(TP_MODE_T, mode, inode->i_mode)
794 )
795)
796#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
5780f1e8
MD
797LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
798 TP_PROTO(struct inode *inode),
799
800 TP_ARGS(inode),
801
802 TP_FIELDS(
803 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
804 ctf_integer(ino_t, ino, inode->i_ino)
805 ctf_integer(__u64, i_blocks, inode->i_blocks)
806 ctf_integer(int, reserved_data_blocks,
807 EXT4_I(inode)->i_reserved_data_blocks)
808 ctf_integer(int, reserved_meta_blocks,
809 EXT4_I(inode)->i_reserved_meta_blocks)
810 ctf_integer(TP_MODE_T, mode, inode->i_mode)
811 )
812)
aa71c949 813#else
3bc29f0a 814LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
b87700e3
AG
815 TP_PROTO(struct inode *inode, int md_needed),
816
817 TP_ARGS(inode, md_needed),
818
f127e61e
MD
819 TP_FIELDS(
820 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
821 ctf_integer(ino_t, ino, inode->i_ino)
822 ctf_integer(__u64, i_blocks, inode->i_blocks)
823 ctf_integer(int, md_needed, md_needed)
824 ctf_integer(int, reserved_data_blocks,
b87700e3 825 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 826 ctf_integer(int, reserved_meta_blocks,
b87700e3 827 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e
MD
828 ctf_integer(TP_MODE_T, mode, inode->i_mode)
829 )
b87700e3 830)
cf101116
MJ
831#endif
832
833#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
834LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
835 TP_PROTO(struct inode *inode, int freed_blocks),
836
837 TP_ARGS(inode, freed_blocks),
b87700e3 838
cf101116
MJ
839 TP_FIELDS(
840 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
841 ctf_integer(ino_t, ino, inode->i_ino)
842 ctf_integer(__u64, i_blocks, inode->i_blocks)
843 ctf_integer(int, freed_blocks, freed_blocks)
844 ctf_integer(int, reserved_data_blocks,
845 EXT4_I(inode)->i_reserved_data_blocks)
846 ctf_integer(TP_MODE_T, mode, inode->i_mode)
847 )
848)
aa71c949 849#else
3bc29f0a 850LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
b87700e3
AG
851 TP_PROTO(struct inode *inode, int freed_blocks),
852
853 TP_ARGS(inode, freed_blocks),
854
f127e61e
MD
855 TP_FIELDS(
856 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
857 ctf_integer(ino_t, ino, inode->i_ino)
858 ctf_integer(__u64, i_blocks, inode->i_blocks)
859 ctf_integer(int, freed_blocks, freed_blocks)
860 ctf_integer(int, reserved_data_blocks,
b87700e3 861 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 862 ctf_integer(int, reserved_meta_blocks,
b87700e3 863 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e 864 ctf_integer(int, allocated_meta_blocks,
b87700e3 865 EXT4_I(inode)->i_allocated_meta_blocks)
f127e61e
MD
866 ctf_integer(TP_MODE_T, mode, inode->i_mode)
867 )
b87700e3
AG
868)
869#endif
870
3bc29f0a 871LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load,
b87700e3
AG
872 TP_PROTO(struct super_block *sb, unsigned long group),
873
874 TP_ARGS(sb, group),
875
f127e61e
MD
876 TP_FIELDS(
877 ctf_integer(dev_t, dev, sb->s_dev)
878 ctf_integer(__u32, group, group)
879 )
b87700e3
AG
880)
881
3bc29f0a 882LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load,
b87700e3
AG
883
884 TP_PROTO(struct super_block *sb, unsigned long group),
885
886 TP_ARGS(sb, group)
887)
888
3bc29f0a 889LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
b87700e3
AG
890
891 TP_PROTO(struct super_block *sb, unsigned long group),
892
893 TP_ARGS(sb, group)
894)
b87700e3 895
3bc29f0a 896LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
b87700e3
AG
897
898 TP_PROTO(struct super_block *sb, unsigned long group),
899
900 TP_ARGS(sb, group)
901)
902
3bc29f0a 903LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
b87700e3
AG
904
905 TP_PROTO(struct super_block *sb, unsigned long group),
906
907 TP_ARGS(sb, group)
908)
909
3bc29f0a 910LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter,
b87700e3
AG
911 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
912
913 TP_ARGS(inode, offset, len, rw),
914
f127e61e
MD
915 TP_FIELDS(
916 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
917 ctf_integer(ino_t, ino, inode->i_ino)
918 ctf_integer(loff_t, pos, offset)
919 ctf_integer(unsigned long, len, len)
920 ctf_integer(int, rw, rw)
921 )
b87700e3
AG
922)
923
3bc29f0a 924LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
b87700e3
AG
925 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
926 int rw, int ret),
927
928 TP_ARGS(inode, offset, len, rw, ret),
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 ctf_integer(int, ret, ret)
937 )
b87700e3
AG
938)
939
3bc29f0a 940LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
11af8f55
MD
941 TP_PROTO(struct inode *inode, loff_t offset,
942 unsigned int max_blocks, int ret),
943
944 TP_ARGS(inode, offset, max_blocks, ret),
945
f127e61e
MD
946 TP_FIELDS(
947 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
948 ctf_integer(ino_t, ino, inode->i_ino)
949 ctf_integer(loff_t, pos, offset)
950 ctf_integer(unsigned int, blocks, max_blocks)
951 ctf_integer(int, ret, ret)
952 )
11af8f55
MD
953)
954
955#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
956
3bc29f0a 957LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
b87700e3
AG
958 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
959
960 TP_ARGS(inode, offset, len, mode),
961
f127e61e
MD
962 TP_FIELDS(
963 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
964 ctf_integer(ino_t, ino, inode->i_ino)
965 ctf_integer(loff_t, pos, offset)
966 ctf_integer(loff_t, len, len)
967 ctf_integer(int, mode, mode)
968 )
b87700e3
AG
969)
970
3bc29f0a 971LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter,
b87700e3 972
11af8f55
MD
973 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
974
975 TP_ARGS(inode, offset, len, mode)
976)
977
3bc29f0a 978LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_punch_hole,
11af8f55
MD
979
980 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
981
982 TP_ARGS(inode, offset, len, mode)
983)
984
3bc29f0a 985LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_zero_range,
11af8f55
MD
986
987 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
988
989 TP_ARGS(inode, offset, len, mode)
990)
991
992#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
993
3bc29f0a 994LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter,
11af8f55
MD
995 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
996
997 TP_ARGS(inode, offset, len, mode),
b87700e3 998
f127e61e
MD
999 TP_FIELDS(
1000 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1001 ctf_integer(ino_t, ino, inode->i_ino)
1002 ctf_integer(loff_t, pos, offset)
1003 ctf_integer(loff_t, len, len)
1004 ctf_integer(int, mode, mode)
1005 )
b87700e3
AG
1006)
1007
c1b29b59
MD
1008#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1009
3bc29f0a 1010LTTNG_TRACEPOINT_EVENT(ext4_punch_hole,
c1b29b59
MD
1011 TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
1012
1013 TP_ARGS(inode, offset, len),
1014
f127e61e
MD
1015 TP_FIELDS(
1016 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1017 ctf_integer(ino_t, ino, inode->i_ino)
1018 ctf_integer(loff_t, pos, offset)
1019 ctf_integer(loff_t, len, len)
1020 )
c1b29b59
MD
1021)
1022
11af8f55
MD
1023#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
1024
1025#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
c1b29b59 1026
3bc29f0a 1027LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
b87700e3
AG
1028 TP_PROTO(struct inode *parent, struct dentry *dentry),
1029
1030 TP_ARGS(parent, dentry),
1031
f127e61e
MD
1032 TP_FIELDS(
1033 ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
1034 ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
1035 ctf_integer(ino_t, parent, parent->i_ino)
1036 ctf_integer(loff_t, size, dentry->d_inode->i_size)
1037 )
b87700e3
AG
1038)
1039
3bc29f0a 1040LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
b87700e3
AG
1041 TP_PROTO(struct dentry *dentry, int ret),
1042
1043 TP_ARGS(dentry, ret),
1044
f127e61e
MD
1045 TP_FIELDS(
1046 ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
1047 ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
1048 ctf_integer(int, ret, ret)
1049 )
b87700e3
AG
1050)
1051
3bc29f0a 1052LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
b87700e3
AG
1053 TP_PROTO(struct inode *inode),
1054
1055 TP_ARGS(inode),
1056
f127e61e
MD
1057 TP_FIELDS(
1058 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1059 ctf_integer(ino_t, ino, inode->i_ino)
1060 ctf_integer(unsigned int, blocks, inode->i_blocks)
1061 )
b87700e3
AG
1062)
1063
3bc29f0a 1064LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
b87700e3
AG
1065
1066 TP_PROTO(struct inode *inode),
1067
1068 TP_ARGS(inode)
1069)
1070
3bc29f0a 1071LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_exit,
b87700e3
AG
1072
1073 TP_PROTO(struct inode *inode),
1074
1075 TP_ARGS(inode)
1076)
1077
1078#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1079/* 'ux' is the uninitialized extent. */
3bc29f0a 1080LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
b87700e3
AG
1081 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1082 struct ext4_extent *ux),
1083
1084 TP_ARGS(inode, map, ux),
1085
f127e61e
MD
1086 TP_FIELDS(
1087 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1088 ctf_integer(ino_t, ino, inode->i_ino)
1089 ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
1090 ctf_integer(unsigned, m_len, map->m_len)
1091 ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
1092 ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
1093 ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
1094 )
b87700e3
AG
1095)
1096
1097/*
1098 * 'ux' is the uninitialized extent.
1099 * 'ix' is the initialized extent to which blocks are transferred.
1100 */
3bc29f0a 1101LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath,
b87700e3
AG
1102 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1103 struct ext4_extent *ux, struct ext4_extent *ix),
1104
1105 TP_ARGS(inode, map, ux, ix),
1106
f127e61e
MD
1107 TP_FIELDS(
1108 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1109 ctf_integer(ino_t, ino, inode->i_ino)
1110 ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
1111 ctf_integer(unsigned, m_len, map->m_len)
1112 ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
1113 ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
1114 ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
1115 ctf_integer(ext4_lblk_t, i_lblk, le32_to_cpu(ix->ee_block))
1116 ctf_integer(unsigned, i_len, ext4_ext_get_actual_len(ix))
1117 ctf_integer(ext4_fsblk_t, i_pblk, ext4_ext_pblock(ix))
1118 )
b87700e3
AG
1119)
1120#endif
1121
3bc29f0a 1122LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter,
b87700e3
AG
1123 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1124 unsigned int len, unsigned int flags),
1125
1126 TP_ARGS(inode, lblk, len, flags),
1127
f127e61e
MD
1128 TP_FIELDS(
1129 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1130 ctf_integer(ino_t, ino, inode->i_ino)
1131 ctf_integer(ext4_lblk_t, lblk, lblk)
1132 ctf_integer(unsigned int, len, len)
1133 ctf_integer(unsigned int, flags, flags)
1134 )
b87700e3
AG
1135)
1136
3bc29f0a 1137LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
b87700e3
AG
1138 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1139 unsigned len, unsigned flags),
1140
1141 TP_ARGS(inode, lblk, len, flags)
1142)
1143
3bc29f0a 1144LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
b87700e3
AG
1145 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1146 unsigned len, unsigned flags),
1147
1148 TP_ARGS(inode, lblk, len, flags)
1149)
1150
00be8842
MD
1151#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1152
3bc29f0a 1153LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
00be8842
MD
1154 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
1155 int ret),
1156
1157 TP_ARGS(inode, flags, map, ret),
1158
f127e61e
MD
1159 TP_FIELDS(
1160 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1161 ctf_integer(ino_t, ino, inode->i_ino)
1162 ctf_integer(unsigned int, flags, flags)
1163 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1164 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1165 ctf_integer(unsigned int, len, map->m_len)
1166 ctf_integer(unsigned int, mflags, map->m_flags)
1167 ctf_integer(int, ret, ret)
1168 )
00be8842
MD
1169)
1170
3bc29f0a 1171LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
00be8842
MD
1172 TP_PROTO(struct inode *inode, unsigned flags,
1173 struct ext4_map_blocks *map, int ret),
1174
1175 TP_ARGS(inode, flags, map, ret)
1176)
1177
3bc29f0a 1178LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
00be8842
MD
1179 TP_PROTO(struct inode *inode, unsigned flags,
1180 struct ext4_map_blocks *map, int ret),
1181
1182 TP_ARGS(inode, flags, map, ret)
1183)
1184
1185#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
162774b4 1186
3bc29f0a 1187LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
162774b4
MD
1188 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
1189
1190 TP_ARGS(inode, map, ret),
1191
f127e61e
MD
1192 TP_FIELDS(
1193 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1194 ctf_integer(ino_t, ino, inode->i_ino)
f127e61e
MD
1195 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1196 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1197 ctf_integer(unsigned int, len, map->m_len)
1198 ctf_integer(unsigned int, mflags, map->m_flags)
1199 ctf_integer(int, ret, ret)
1200 )
162774b4
MD
1201)
1202
3bc29f0a 1203LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
162774b4
MD
1204 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
1205
1206 TP_ARGS(inode, map, ret)
1207)
1208
3bc29f0a 1209LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
162774b4
MD
1210 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
1211
1212 TP_ARGS(inode, map, ret)
1213)
1214
1215#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1216
3bc29f0a 1217LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
b87700e3
AG
1218 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1219 ext4_fsblk_t pblk, unsigned int len, int ret),
1220
1221 TP_ARGS(inode, lblk, pblk, len, ret),
1222
f127e61e
MD
1223 TP_FIELDS(
1224 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1225 ctf_integer(ino_t, ino, inode->i_ino)
1226 ctf_integer(ext4_fsblk_t, pblk, pblk)
1227 ctf_integer(ext4_lblk_t, lblk, lblk)
1228 ctf_integer(unsigned int, len, len)
1229 ctf_integer(int, ret, ret)
1230 )
b87700e3
AG
1231)
1232
3bc29f0a 1233LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
b87700e3
AG
1234 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1235 ext4_fsblk_t pblk, unsigned len, int ret),
1236
1237 TP_ARGS(inode, lblk, pblk, len, ret)
1238)
1239
3bc29f0a 1240LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
b87700e3
AG
1241 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1242 ext4_fsblk_t pblk, unsigned len, int ret),
1243
1244 TP_ARGS(inode, lblk, pblk, len, ret)
1245)
1246
162774b4
MD
1247#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1248
3bc29f0a 1249LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
b87700e3
AG
1250 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
1251
1252 TP_ARGS(inode, lblk, pblk),
1253
f127e61e
MD
1254 TP_FIELDS(
1255 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1256 ctf_integer(ino_t, ino, inode->i_ino)
1257 ctf_integer(ext4_fsblk_t, pblk, pblk)
1258 ctf_integer(ext4_lblk_t, lblk, lblk)
1259 )
b87700e3
AG
1260)
1261
3bc29f0a 1262LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
b87700e3
AG
1263 TP_PROTO(struct inode *inode),
1264
1265 TP_ARGS(inode),
1266
f127e61e
MD
1267 TP_FIELDS(
1268 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1269 ctf_integer(ino_t, ino, inode->i_ino)
1270 )
b87700e3 1271)
b87700e3 1272
bb0eb66d
MJ
1273#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
1274
1275LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
1276 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
1277 int revoke_creds, unsigned long IP),
1278
1279 TP_ARGS(sb, blocks, rsv_blocks, revoke_creds, IP),
1280
1281 TP_FIELDS(
1282 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1283 ctf_integer_hex(unsigned long, ip, IP)
bb0eb66d
MJ
1284 ctf_integer(int, blocks, blocks)
1285 ctf_integer(int, rsv_blocks, rsv_blocks)
1286 ctf_integer(int, revoke_creds, revoke_creds)
1287 )
1288)
1289
1290LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
1291 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
1292
1293 TP_ARGS(sb, blocks, IP),
1294
1295 TP_FIELDS(
1296 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1297 ctf_integer_hex(unsigned long, ip, IP)
bb0eb66d
MJ
1298 ctf_integer(int, blocks, blocks)
1299 )
1300)
1301
1302#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842 1303
3bc29f0a 1304LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
00be8842
MD
1305 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
1306 unsigned long IP),
1307
1308 TP_ARGS(sb, blocks, rsv_blocks, IP),
1309
f127e61e
MD
1310 TP_FIELDS(
1311 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1312 ctf_integer_hex(unsigned long, ip, IP)
f127e61e
MD
1313 ctf_integer(int, blocks, blocks)
1314 ctf_integer(int, rsv_blocks, rsv_blocks)
1315 )
00be8842
MD
1316)
1317
3bc29f0a 1318LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
00be8842
MD
1319 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
1320
1321 TP_ARGS(sb, blocks, IP),
1322
f127e61e
MD
1323 TP_FIELDS(
1324 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1325 ctf_integer_hex(unsigned long, ip, IP)
f127e61e
MD
1326 ctf_integer(int, blocks, blocks)
1327 )
00be8842
MD
1328)
1329
1330#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
1331
3bc29f0a 1332LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
b87700e3
AG
1333 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
1334
1335 TP_ARGS(sb, nblocks, IP),
1336
f127e61e
MD
1337 TP_FIELDS(
1338 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1339 ctf_integer_hex(unsigned long, ip, IP)
f127e61e
MD
1340 ctf_integer(int, nblocks, nblocks)
1341 )
b87700e3
AG
1342)
1343
3bc29f0a 1344LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim,
b87700e3
AG
1345 TP_PROTO(struct super_block *sb,
1346 ext4_group_t group,
1347 ext4_grpblk_t start,
1348 ext4_grpblk_t len),
1349
1350 TP_ARGS(sb, group, start, len),
1351
f127e61e
MD
1352 TP_FIELDS(
1353 ctf_integer(int, dev_major, MAJOR(sb->s_dev))
1354 ctf_integer(int, dev_minor, MINOR(sb->s_dev))
1355 ctf_integer(__u32, group, group)
1356 ctf_integer(int, start, start)
1357 ctf_integer(int, len, len)
1358 )
b87700e3
AG
1359)
1360
3bc29f0a 1361LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_extent,
b87700e3
AG
1362
1363 TP_PROTO(struct super_block *sb,
1364 ext4_group_t group,
1365 ext4_grpblk_t start,
1366 ext4_grpblk_t len),
1367
1368 TP_ARGS(sb, group, start, len)
1369)
1370
3bc29f0a 1371LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_all_free,
b87700e3
AG
1372
1373 TP_PROTO(struct super_block *sb,
1374 ext4_group_t group,
1375 ext4_grpblk_t start,
1376 ext4_grpblk_t len),
1377
1378 TP_ARGS(sb, group, start, len)
1379)
1380#endif
1381
1382#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
162774b4 1383
3bc29f0a 1384LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
162774b4
MD
1385#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
1386 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
1387 unsigned int allocated, ext4_fsblk_t newblock),
1388
1389 TP_ARGS(inode, map, flags, allocated, newblock),
1390#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
1391 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1392 unsigned int allocated, ext4_fsblk_t newblock),
1393
1394 TP_ARGS(inode, map, allocated, newblock),
162774b4 1395#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3 1396
f127e61e
MD
1397 TP_FIELDS(
1398 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1399 ctf_integer(ino_t, ino, inode->i_ino)
162774b4 1400#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
f127e61e 1401 ctf_integer(int, flags, flags)
162774b4 1402#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
f127e61e 1403 ctf_integer(int, flags, map->m_flags)
162774b4 1404#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
f127e61e
MD
1405 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1406 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1407 ctf_integer(unsigned int, len, map->m_len)
1408 ctf_integer(unsigned int, allocated, allocated)
1409 ctf_integer(ext4_fsblk_t, newblk, newblock)
1410 )
b87700e3
AG
1411)
1412
3bc29f0a 1413LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
b87700e3
AG
1414 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
1415
1416 TP_ARGS(sb, map, ret),
1417
f127e61e
MD
1418 TP_FIELDS(
1419 ctf_integer(dev_t, dev, sb->s_dev)
1420 ctf_integer(unsigned int, flags, map->m_flags)
1421 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1422 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1423 ctf_integer(unsigned int, len, map->m_len)
1424 ctf_integer(int, ret, ret)
1425 )
b87700e3
AG
1426)
1427
3bc29f0a 1428LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
b87700e3
AG
1429 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
1430 ext4_fsblk_t start),
1431
1432 TP_ARGS(inode, lblk, len, start),
1433
f127e61e
MD
1434 TP_FIELDS(
1435 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1436 ctf_integer(ino_t, ino, inode->i_ino)
1437 ctf_integer(ext4_lblk_t, lblk, lblk)
1438 ctf_integer(unsigned int, len, len)
1439 ctf_integer(ext4_fsblk_t, start, start)
1440 )
b87700e3
AG
1441)
1442
3bc29f0a 1443LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
b87700e3
AG
1444 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
1445
1446 TP_ARGS(inode, lblk, ret),
1447
f127e61e
MD
1448 TP_FIELDS(
1449 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1450 ctf_integer(ino_t, ino, inode->i_ino)
1451 ctf_integer(ext4_lblk_t, lblk, lblk)
1452 ctf_integer(int, ret, ret)
1453 )
b87700e3
AG
1454)
1455
3bc29f0a 1456LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
b87700e3
AG
1457 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
1458 int reverse, int found, ext4_lblk_t found_blk),
1459
1460 TP_ARGS(inode, from, to, reverse, found, found_blk),
1461
f127e61e
MD
1462 TP_FIELDS(
1463 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1464 ctf_integer(ino_t, ino, inode->i_ino)
1465 ctf_integer(ext4_lblk_t, from, from)
1466 ctf_integer(ext4_lblk_t, to, to)
1467 ctf_integer(int, reverse, reverse)
1468 ctf_integer(int, found, found)
1469 ctf_integer(ext4_lblk_t, found_blk, found_blk)
1470 )
b87700e3
AG
1471)
1472
3bc29f0a 1473LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
b87700e3
AG
1474 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
1475
1476 TP_ARGS(inode, lblk, len),
1477
f127e61e
MD
1478 TP_FIELDS(
1479 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1480 ctf_integer(ino_t, ino, inode->i_ino)
1481 ctf_integer(ext4_lblk_t, lblk, lblk)
1482 ctf_integer(unsigned int, len, len)
1483 )
b87700e3
AG
1484)
1485
3bc29f0a 1486LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
b87700e3
AG
1487 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
1488 unsigned short len),
1489
1490 TP_ARGS(inode, lblk, pblk, len),
1491
f127e61e
MD
1492 TP_FIELDS(
1493 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1494 ctf_integer(ino_t, ino, inode->i_ino)
1495 ctf_integer(ext4_fsblk_t, pblk, pblk)
1496 ctf_integer(ext4_lblk_t, lblk, lblk)
1497 ctf_integer(unsigned short, len, len)
1498 )
b87700e3
AG
1499)
1500
3395f24e
MJ
1501#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
1502 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1503
1504LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
1505 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1506 ext4_lblk_t from, ext4_fsblk_t to,
1507 struct partial_cluster *pc),
1508
1509 TP_ARGS(inode, ex, from, to, pc),
1510
1511 TP_FIELDS(
1512 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1513 ctf_integer(ino_t, ino, inode->i_ino)
1514 ctf_integer(ext4_lblk_t, from, from)
1515 ctf_integer(ext4_lblk_t, to, to)
1516 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1517 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1518 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1519 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1520 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1521 ctf_integer(int, pc_state, pc->state)
1522 )
1523)
1524
1525#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842 1526
3bc29f0a 1527LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
00be8842
MD
1528 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1529 ext4_lblk_t from, ext4_fsblk_t to,
1530 long long partial_cluster),
1531
1532 TP_ARGS(inode, ex, from, to, partial_cluster),
1533
f127e61e
MD
1534 TP_FIELDS(
1535 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1536 ctf_integer(ino_t, ino, inode->i_ino)
1537 ctf_integer(ext4_lblk_t, from, from)
1538 ctf_integer(ext4_lblk_t, to, to)
1539 ctf_integer(long long, partial, partial_cluster)
1540 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1541 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1542 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1543 )
00be8842
MD
1544)
1545
1546#else
1547
3bc29f0a 1548LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
b87700e3
AG
1549 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1550 ext4_lblk_t from, ext4_fsblk_t to,
1551 ext4_fsblk_t partial_cluster),
1552
1553 TP_ARGS(inode, ex, from, to, partial_cluster),
1554
f127e61e
MD
1555 TP_FIELDS(
1556 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1557 ctf_integer(ino_t, ino, inode->i_ino)
1558 ctf_integer(ext4_lblk_t, from, from)
1559 ctf_integer(ext4_lblk_t, to, to)
1560 ctf_integer(ext4_fsblk_t, partial, partial_cluster)
1561 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1562 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1563 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1564 )
b87700e3
AG
1565)
1566
00be8842
MD
1567#endif
1568
3395f24e
MJ
1569#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
1570 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1571
1572LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
1573 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1574 struct ext4_extent *ex,
1575 struct partial_cluster *pc),
1576
1577 TP_ARGS(inode, start, ex, pc),
1578
1579 TP_FIELDS(
1580 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1581 ctf_integer(ino_t, ino, inode->i_ino)
1582 ctf_integer(ext4_lblk_t, start, start)
1583 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1584 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1585 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1586 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1587 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1588 ctf_integer(int, pc_state, pc->state)
1589 )
1590)
1591
1592#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842 1593
3bc29f0a 1594LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
00be8842
MD
1595 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1596 struct ext4_extent *ex,
1597 long long partial_cluster),
1598
1599 TP_ARGS(inode, start, ex, partial_cluster),
1600
f127e61e
MD
1601 TP_FIELDS(
1602 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1603 ctf_integer(ino_t, ino, inode->i_ino)
1604 ctf_integer(long long, partial, partial_cluster)
1605 ctf_integer(ext4_lblk_t, start, start)
1606 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1607 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1608 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1609 )
00be8842
MD
1610)
1611
1612#else
1613
3bc29f0a 1614LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
b87700e3
AG
1615 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1616 struct ext4_extent *ex, ext4_fsblk_t partial_cluster),
1617
1618 TP_ARGS(inode, start, ex, partial_cluster),
1619
f127e61e
MD
1620 TP_FIELDS(
1621 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1622 ctf_integer(ino_t, ino, inode->i_ino)
1623 ctf_integer(long long, partial, partial_cluster)
1624 ctf_integer(ext4_lblk_t, start, start)
1625 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1626 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1627 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1628 )
b87700e3
AG
1629)
1630
00be8842
MD
1631#endif
1632
3bc29f0a 1633LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx,
b87700e3
AG
1634 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
1635
1636 TP_ARGS(inode, pblk),
1637
f127e61e
MD
1638 TP_FIELDS(
1639 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1640 ctf_integer(ino_t, ino, inode->i_ino)
1641 ctf_integer(ext4_fsblk_t, pblk, pblk)
1642 )
b87700e3
AG
1643)
1644
00be8842
MD
1645#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1646
3bc29f0a 1647LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
00be8842
MD
1648 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1649 ext4_lblk_t end, int depth),
1650
1651 TP_ARGS(inode, start, end, depth),
1652
f127e61e
MD
1653 TP_FIELDS(
1654 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1655 ctf_integer(ino_t, ino, inode->i_ino)
1656 ctf_integer(ext4_lblk_t, start, start)
1657 ctf_integer(ext4_lblk_t, end, end)
1658 ctf_integer(int, depth, depth)
1659 )
00be8842
MD
1660)
1661
1662#else
1663
3bc29f0a 1664LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
b87700e3
AG
1665 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth),
1666
1667 TP_ARGS(inode, start, depth),
1668
f127e61e
MD
1669 TP_FIELDS(
1670 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1671 ctf_integer(ino_t, ino, inode->i_ino)
1672 ctf_integer(ext4_lblk_t, start, start)
1673 ctf_integer(int, depth, depth)
1674 )
b87700e3
AG
1675)
1676
00be8842
MD
1677#endif
1678
3395f24e
MJ
1679#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
1680 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1681
1682LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
1683 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
1684 int depth, struct partial_cluster *pc, __le16 eh_entries),
1685
1686 TP_ARGS(inode, start, end, depth, pc, eh_entries),
1687
1688 TP_FIELDS(
1689 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1690 ctf_integer(ino_t, ino, inode->i_ino)
1691 ctf_integer(ext4_lblk_t, start, start)
1692 ctf_integer(ext4_lblk_t, end, end)
1693 ctf_integer(int, depth, depth)
1694 ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
1695 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1696 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1697 ctf_integer(int, pc_state, pc->state)
1698 )
1699)
1700
1701#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842 1702
3bc29f0a 1703LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
00be8842
MD
1704 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
1705 int depth, long long partial, __le16 eh_entries),
1706
1707 TP_ARGS(inode, start, end, depth, partial, eh_entries),
1708
f127e61e
MD
1709 TP_FIELDS(
1710 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1711 ctf_integer(ino_t, ino, inode->i_ino)
1712 ctf_integer(ext4_lblk_t, start, start)
1713 ctf_integer(ext4_lblk_t, end, end)
1714 ctf_integer(int, depth, depth)
1715 ctf_integer(long long, partial, partial)
1716 ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
1717 )
00be8842
MD
1718)
1719
1720#else
1721
3bc29f0a 1722LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
b87700e3
AG
1723 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth,
1724 ext4_lblk_t partial, unsigned short eh_entries),
1725
1726 TP_ARGS(inode, start, depth, partial, eh_entries),
1727
f127e61e
MD
1728 TP_FIELDS(
1729 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1730 ctf_integer(ino_t, ino, inode->i_ino)
1731 ctf_integer(ext4_lblk_t, start, start)
1732 ctf_integer(int, depth, depth)
1733 ctf_integer(ext4_lblk_t, partial, partial)
1734 ctf_integer(unsigned short, eh_entries, eh_entries)
1735 )
b87700e3 1736)
00be8842
MD
1737
1738#endif
1739
1740#endif
1741
39aee4a0
MD
1742#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
1743
3bc29f0a 1744LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
39aee4a0
MD
1745 TP_PROTO(struct inode *inode, struct extent_status *es),
1746
1747 TP_ARGS(inode, es),
1748
f127e61e
MD
1749 TP_FIELDS(
1750 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1751 ctf_integer(ino_t, ino, inode->i_ino)
1752 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1753 ctf_integer(ext4_lblk_t, len, es->es_len)
1754 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1755 ctf_integer(char, status, ext4_es_status(es))
1756 )
39aee4a0
MD
1757)
1758
3bc29f0a 1759LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent,
39aee4a0
MD
1760 TP_PROTO(struct inode *inode, struct extent_status *es),
1761
1762 TP_ARGS(inode, es)
1763)
1764
3bc29f0a 1765LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_cache_extent,
39aee4a0
MD
1766 TP_PROTO(struct inode *inode, struct extent_status *es),
1767
1768 TP_ARGS(inode, es)
1769)
1770
1771#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842 1772
3bc29f0a 1773LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent,
00be8842
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) >> 60)
1785 )
00be8842
MD
1786)
1787
3bc29f0a 1788LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent,
00be8842
MD
1789 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len),
1790
1791 TP_ARGS(inode, lblk, len),
1792
f127e61e
MD
1793 TP_FIELDS(
1794 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1795 ctf_integer(ino_t, ino, inode->i_ino)
1796 ctf_integer(loff_t, lblk, lblk)
1797 ctf_integer(loff_t, len, len)
1798 )
00be8842
MD
1799)
1800
3bc29f0a 1801LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter,
00be8842
MD
1802 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
1803
1804 TP_ARGS(inode, lblk),
1805
f127e61e
MD
1806 TP_FIELDS(
1807 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1808 ctf_integer(ino_t, ino, inode->i_ino)
1809 ctf_integer(ext4_lblk_t, lblk, lblk)
1810 )
00be8842
MD
1811)
1812
3bc29f0a 1813LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit,
00be8842
MD
1814 TP_PROTO(struct inode *inode, struct extent_status *es),
1815
1816 TP_ARGS(inode, es),
1817
f127e61e
MD
1818 TP_FIELDS(
1819 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1820 ctf_integer(ino_t, ino, inode->i_ino)
1821 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1822 ctf_integer(ext4_lblk_t, len, es->es_len)
1823 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1824 ctf_integer(char, status, ext4_es_status(es) >> 60)
1825 )
00be8842
MD
1826)
1827
3bc29f0a 1828LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter,
00be8842
MD
1829 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
1830
1831 TP_ARGS(inode, lblk),
1832
f127e61e
MD
1833 TP_FIELDS(
1834 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1835 ctf_integer(ino_t, ino, inode->i_ino)
1836 ctf_integer(ext4_lblk_t, lblk, lblk)
1837 )
00be8842
MD
1838)
1839
3bc29f0a 1840LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit,
00be8842
MD
1841 TP_PROTO(struct inode *inode, struct extent_status *es,
1842 int found),
1843
1844 TP_ARGS(inode, es, found),
1845
f127e61e
MD
1846 TP_FIELDS(
1847 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1848 ctf_integer(ino_t, ino, inode->i_ino)
1849 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1850 ctf_integer(ext4_lblk_t, len, es->es_len)
1851 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1852 ctf_integer(char, status, ext4_es_status(es) >> 60)
1853 ctf_integer(int, found, found)
1854 )
00be8842
MD
1855)
1856
3bc29f0a 1857LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter,
00be8842
MD
1858 TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt),
1859
1860 TP_ARGS(sb, nr_to_scan, cache_cnt),
1861
f127e61e
MD
1862 TP_FIELDS(
1863 ctf_integer(dev_t, dev, sb->s_dev)
1864 ctf_integer(int, nr_to_scan, nr_to_scan)
1865 ctf_integer(int, cache_cnt, cache_cnt)
1866 )
00be8842
MD
1867)
1868
3bc29f0a 1869LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
00be8842
MD
1870 TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt),
1871
1872 TP_ARGS(sb, shrunk_nr, cache_cnt),
1873
f127e61e
MD
1874 TP_FIELDS(
1875 ctf_integer(dev_t, dev, sb->s_dev)
1876 ctf_integer(int, shrunk_nr, shrunk_nr)
1877 ctf_integer(int, cache_cnt, cache_cnt)
1878 )
00be8842
MD
1879)
1880
b87700e3
AG
1881#endif
1882
3bc29f0a 1883#endif /* LTTNG_TRACE_EXT4_H */
b87700e3
AG
1884
1885/* This part must be outside protection */
3b4aafcb 1886#include <lttng/define_trace.h>
This page took 0.157034 seconds and 4 git commands to generate.