Drop support for kernels < 4.4 from ext4 instrumentation
[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>
5f4c791e 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;
b87700e3
AG
20struct ext4_extent;
21#endif
b87700e3
AG
22
23#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
b87700e3 24#define TP_MODE_T __u16
b87700e3 25
3bc29f0a 26LTTNG_TRACEPOINT_EVENT(ext4_free_inode,
b87700e3
AG
27 TP_PROTO(struct inode *inode),
28
29 TP_ARGS(inode),
30
f127e61e
MD
31 TP_FIELDS(
32 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
33 ctf_integer(ino_t, ino, inode->i_ino)
f127e61e
MD
34 ctf_integer(uid_t, uid, i_uid_read(inode))
35 ctf_integer(gid_t, gid, i_gid_read(inode))
f127e61e
MD
36 ctf_integer(__u64, blocks, inode->i_blocks)
37 ctf_integer(TP_MODE_T, mode, inode->i_mode)
38 )
b87700e3
AG
39)
40
3bc29f0a 41LTTNG_TRACEPOINT_EVENT(ext4_request_inode,
b87700e3
AG
42 TP_PROTO(struct inode *dir, int mode),
43
44 TP_ARGS(dir, mode),
45
f127e61e
MD
46 TP_FIELDS(
47 ctf_integer(dev_t, dev, dir->i_sb->s_dev)
48 ctf_integer(ino_t, dir, dir->i_ino)
49 ctf_integer(TP_MODE_T, mode, mode)
50 )
b87700e3
AG
51)
52
3bc29f0a 53LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode,
b87700e3
AG
54 TP_PROTO(struct inode *inode, struct inode *dir, int mode),
55
56 TP_ARGS(inode, dir, mode),
57
f127e61e
MD
58 TP_FIELDS(
59 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
60 ctf_integer(ino_t, ino, inode->i_ino)
61 ctf_integer(ino_t, dir, dir->i_ino)
62 ctf_integer(TP_MODE_T, mode, mode)
63 )
b87700e3
AG
64)
65
3bc29f0a 66LTTNG_TRACEPOINT_EVENT(ext4_evict_inode,
b87700e3
AG
67 TP_PROTO(struct inode *inode),
68
69 TP_ARGS(inode),
70
f127e61e
MD
71 TP_FIELDS(
72 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
73 ctf_integer(ino_t, ino, inode->i_ino)
74 ctf_integer(int, nlink, inode->i_nlink)
75 )
b87700e3
AG
76)
77
3bc29f0a 78LTTNG_TRACEPOINT_EVENT(ext4_drop_inode,
b87700e3
AG
79 TP_PROTO(struct inode *inode, int drop),
80
81 TP_ARGS(inode, drop),
82
f127e61e
MD
83 TP_FIELDS(
84 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
85 ctf_integer(ino_t, ino, inode->i_ino)
86 ctf_integer(int, drop, drop)
87 )
b87700e3
AG
88)
89
3bc29f0a 90LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty,
b87700e3
AG
91 TP_PROTO(struct inode *inode, unsigned long IP),
92
93 TP_ARGS(inode, IP),
94
f127e61e
MD
95 TP_FIELDS(
96 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
97 ctf_integer(ino_t, ino, inode->i_ino)
2c054599 98 ctf_integer_hex(unsigned long, ip, IP)
f127e61e 99 )
b87700e3
AG
100)
101
3bc29f0a 102LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate,
b87700e3
AG
103 TP_PROTO(struct inode *inode, loff_t new_size),
104
105 TP_ARGS(inode, new_size),
106
f127e61e
MD
107 TP_FIELDS(
108 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
109 ctf_integer(ino_t, ino, inode->i_ino)
110 ctf_integer(loff_t, new_size, new_size)
111 )
b87700e3 112)
b87700e3 113
5e2f832d
MJ
114#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0))
115LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin,
116
117 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len),
118
119 TP_ARGS(inode, pos, len),
120
121 TP_FIELDS(
122 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
123 ctf_integer(ino_t, ino, inode->i_ino)
124 ctf_integer(loff_t, pos, pos)
125 ctf_integer(unsigned int, len, len)
126 )
127)
128
129LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin,
130
131 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len),
132
133 TP_ARGS(inode, pos, len)
134)
135
136LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_da_write_begin,
137
138 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len),
139
140 TP_ARGS(inode, pos, len)
141)
142#else
3bc29f0a 143LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin,
b87700e3
AG
144
145 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
146 unsigned int flags),
147
148 TP_ARGS(inode, pos, len, flags),
149
f127e61e
MD
150 TP_FIELDS(
151 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
152 ctf_integer(ino_t, ino, inode->i_ino)
153 ctf_integer(loff_t, pos, pos)
154 ctf_integer(unsigned int, len, len)
155 ctf_integer(unsigned int, flags, flags)
156 )
b87700e3
AG
157)
158
3bc29f0a 159LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin,
b87700e3
AG
160
161 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
162 unsigned int flags),
163
164 TP_ARGS(inode, pos, len, flags)
165)
166
3bc29f0a 167LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_da_write_begin,
b87700e3
AG
168
169 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
170 unsigned int flags),
171
172 TP_ARGS(inode, pos, len, flags)
173)
09b8e4f6 174#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0)) */
b87700e3 175
3bc29f0a 176LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end,
b87700e3
AG
177 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
178 unsigned int copied),
179
180 TP_ARGS(inode, pos, len, copied),
181
f127e61e
MD
182 TP_FIELDS(
183 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
184 ctf_integer(ino_t, ino, inode->i_ino)
185 ctf_integer(loff_t, pos, pos)
186 ctf_integer(unsigned int, len, len)
187 ctf_integer(unsigned int, copied, copied)
188 )
b87700e3
AG
189)
190
3bc29f0a 191LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_ordered_write_end,
b87700e3
AG
192
193 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
194 unsigned int copied),
195
196 TP_ARGS(inode, pos, len, copied)
197)
198
3bc29f0a 199LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_writeback_write_end,
b87700e3
AG
200
201 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
202 unsigned int copied),
203
204 TP_ARGS(inode, pos, len, copied)
205)
206
3bc29f0a 207LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_journalled_write_end,
b87700e3
AG
208
209 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
210 unsigned int copied),
211
212 TP_ARGS(inode, pos, len, copied)
213)
214
3bc29f0a 215LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_da_write_end,
b87700e3
AG
216
217 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
218 unsigned int copied),
219
220 TP_ARGS(inode, pos, len, copied)
221)
222
3bc29f0a 223LTTNG_TRACEPOINT_EVENT(ext4_da_writepages,
b87700e3
AG
224 TP_PROTO(struct inode *inode, struct writeback_control *wbc),
225
226 TP_ARGS(inode, wbc),
227
f127e61e
MD
228 TP_FIELDS(
229 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
230 ctf_integer(ino_t, ino, inode->i_ino)
231 ctf_integer(long, nr_to_write, wbc->nr_to_write)
232 ctf_integer(long, pages_skipped, wbc->pages_skipped)
233 ctf_integer(loff_t, range_start, wbc->range_start)
234 ctf_integer(loff_t, range_end, wbc->range_end)
235 ctf_integer(pgoff_t, writeback_index, inode->i_mapping->writeback_index)
f127e61e 236 ctf_integer(int, sync_mode, wbc->sync_mode)
f127e61e 237 ctf_integer(char, for_kupdate, wbc->for_kupdate)
f127e61e
MD
238 ctf_integer(char, range_cyclic, wbc->range_cyclic)
239 )
b87700e3
AG
240)
241
3bc29f0a 242LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
00be8842
MD
243 TP_PROTO(struct inode *inode, pgoff_t first_page,
244 struct writeback_control *wbc),
245
246 TP_ARGS(inode, first_page, wbc),
247
f127e61e
MD
248 TP_FIELDS(
249 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
250 ctf_integer(ino_t, ino, inode->i_ino)
251 ctf_integer(pgoff_t, first_page, first_page)
252 ctf_integer(long, nr_to_write, wbc->nr_to_write)
253 ctf_integer(int, sync_mode, wbc->sync_mode)
254 )
00be8842
MD
255)
256
3bc29f0a 257LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent,
c1b29b59
MD
258 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map),
259
260 TP_ARGS(inode, map),
261
f127e61e
MD
262 TP_FIELDS(
263 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
264 ctf_integer(ino_t, ino, inode->i_ino)
265 ctf_integer(__u64, lblk, map->m_lblk)
266 ctf_integer(__u32, len, map->m_len)
267 ctf_integer(__u32, flags, map->m_flags)
268 )
c1b29b59
MD
269)
270
3bc29f0a 271LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result,
b87700e3
AG
272 TP_PROTO(struct inode *inode, struct writeback_control *wbc,
273 int ret, int pages_written),
274
275 TP_ARGS(inode, wbc, ret, pages_written),
276
f127e61e
MD
277 TP_FIELDS(
278 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
279 ctf_integer(ino_t, ino, inode->i_ino)
280 ctf_integer(int, ret, ret)
281 ctf_integer(int, pages_written, pages_written)
282 ctf_integer(long, pages_skipped, wbc->pages_skipped)
283 ctf_integer(pgoff_t, writeback_index, inode->i_mapping->writeback_index)
f127e61e 284 ctf_integer(int, sync_mode, wbc->sync_mode)
f127e61e 285 )
b87700e3
AG
286)
287
3bc29f0a 288LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op,
b87700e3
AG
289 TP_PROTO(struct page *page),
290
291 TP_ARGS(page),
292
f127e61e
MD
293 TP_FIELDS(
294 ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
295 ctf_integer(ino_t, ino, page->mapping->host->i_ino)
296 ctf_integer(pgoff_t, index, page->index)
297 )
b87700e3
AG
298)
299
3bc29f0a 300LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_writepage,
b87700e3
AG
301
302 TP_PROTO(struct page *page),
303
304 TP_ARGS(page)
305)
b87700e3 306
3bc29f0a 307LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_readpage,
b87700e3
AG
308
309 TP_PROTO(struct page *page),
310
311 TP_ARGS(page)
312)
313
3bc29f0a 314LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_releasepage,
b87700e3
AG
315
316 TP_PROTO(struct page *page),
317
318 TP_ARGS(page)
319)
320
3bc29f0a 321LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op,
00be8842
MD
322 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
323
324 TP_ARGS(page, offset, length),
325
f127e61e
MD
326 TP_FIELDS(
327 ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
328 ctf_integer(ino_t, ino, page->mapping->host->i_ino)
329 ctf_integer(pgoff_t, index, page->index)
330 ctf_integer(unsigned int, offset, offset)
331 ctf_integer(unsigned int, length, length)
332 )
00be8842
MD
333)
334
3bc29f0a 335LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_invalidatepage,
00be8842
MD
336 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
337
338 TP_ARGS(page, offset, length)
339)
340
3bc29f0a 341LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_journalled_invalidatepage,
00be8842
MD
342 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
343
344 TP_ARGS(page, offset, length)
345)
346
3bc29f0a 347LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks,
b87700e3
AG
348 TP_PROTO(struct super_block *sb, unsigned long long blk,
349 unsigned long long count),
350
351 TP_ARGS(sb, blk, count),
352
f127e61e
MD
353 TP_FIELDS(
354 ctf_integer(dev_t, dev, sb->s_dev)
355 ctf_integer(__u64, blk, blk)
356 ctf_integer(__u64, count, count)
357 )
b87700e3
AG
358)
359
3bc29f0a 360LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa,
b87700e3
AG
361 TP_PROTO(struct ext4_allocation_context *ac,
362 struct ext4_prealloc_space *pa),
363
364 TP_ARGS(ac, pa),
365
f127e61e
MD
366 TP_FIELDS(
367 ctf_integer(dev_t, dev, ac->ac_sb->s_dev)
368 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
369 ctf_integer(__u64, pa_pstart, pa->pa_pstart)
370 ctf_integer(__u64, pa_lstart, pa->pa_lstart)
371 ctf_integer(__u32, pa_len, pa->pa_len)
372 )
b87700e3
AG
373)
374
3bc29f0a 375LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_inode_pa,
b87700e3
AG
376
377 TP_PROTO(struct ext4_allocation_context *ac,
378 struct ext4_prealloc_space *pa),
379
380 TP_ARGS(ac, pa)
381)
382
3bc29f0a 383LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_group_pa,
b87700e3
AG
384
385 TP_PROTO(struct ext4_allocation_context *ac,
386 struct ext4_prealloc_space *pa),
387
388 TP_ARGS(ac, pa)
389)
390
3bc29f0a 391LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa,
b87700e3 392 TP_PROTO(
b87700e3
AG
393 struct ext4_prealloc_space *pa,
394 unsigned long long block, unsigned int count),
395
b87700e3 396 TP_ARGS(pa, block, count),
b87700e3 397
f127e61e 398 TP_FIELDS(
f127e61e
MD
399 ctf_integer(dev_t, dev, pa->pa_inode->i_sb->s_dev)
400 ctf_integer(ino_t, ino, pa->pa_inode->i_ino)
f127e61e
MD
401 ctf_integer(__u64, block, block)
402 ctf_integer(__u32, count, count)
403 )
b87700e3
AG
404)
405
3bc29f0a 406LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
b87700e3 407
b87700e3
AG
408 TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa),
409
410 TP_ARGS(sb, pa),
b87700e3 411
aa71c949
MJ
412 TP_FIELDS(
413 ctf_integer(dev_t, dev, sb->s_dev)
414 ctf_integer(__u64, pa_pstart, pa->pa_pstart)
415 ctf_integer(__u32, pa_len, pa->pa_len)
416 )
417)
b87700e3 418
5f4c791e 419#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0) || \
b6af46d1 420 LTTNG_KERNEL_RANGE(5,8,6, 5,9,0))
347a7ba0
MJ
421LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
422 TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
423
424 TP_ARGS(inode, len, needed),
425
426 TP_FIELDS(
427 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
428 ctf_integer(ino_t, ino, inode->i_ino)
429 ctf_integer(unsigned int, len, len)
430 ctf_integer(unsigned int, needed, needed)
431 )
432)
433#else
3bc29f0a 434LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
b87700e3
AG
435 TP_PROTO(struct inode *inode),
436
437 TP_ARGS(inode),
438
f127e61e
MD
439 TP_FIELDS(
440 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
441 ctf_integer(ino_t, ino, inode->i_ino)
442 )
b87700e3 443)
347a7ba0 444#endif
b87700e3 445
3bc29f0a 446LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
b87700e3
AG
447 TP_PROTO(struct super_block *sb, int needed),
448
449 TP_ARGS(sb, needed),
450
f127e61e
MD
451 TP_FIELDS(
452 ctf_integer(dev_t, dev, sb->s_dev)
453 ctf_integer(int, needed, needed)
454 )
b87700e3
AG
455)
456
3bc29f0a 457LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
b87700e3
AG
458 TP_PROTO(struct ext4_allocation_request *ar),
459
460 TP_ARGS(ar),
461
f127e61e
MD
462 TP_FIELDS(
463 ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
464 ctf_integer(ino_t, ino, ar->inode->i_ino)
465 ctf_integer(unsigned int, len, ar->len)
466 ctf_integer(__u32, logical, ar->logical)
467 ctf_integer(__u32, lleft, ar->lleft)
468 ctf_integer(__u32, lright, ar->lright)
469 ctf_integer(__u64, goal, ar->goal)
470 ctf_integer(__u64, pleft, ar->pleft)
471 ctf_integer(__u64, pright, ar->pright)
472 ctf_integer(unsigned int, flags, ar->flags)
473 )
b87700e3
AG
474)
475
3bc29f0a 476LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
b87700e3
AG
477 TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block),
478
479 TP_ARGS(ar, block),
480
f127e61e
MD
481 TP_FIELDS(
482 ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
483 ctf_integer(ino_t, ino, ar->inode->i_ino)
484 ctf_integer(__u64, block, block)
485 ctf_integer(unsigned int, len, ar->len)
486 ctf_integer(__u32, logical, ar->logical)
487 ctf_integer(__u32, lleft, ar->lleft)
488 ctf_integer(__u32, lright, ar->lright)
489 ctf_integer(__u64, goal, ar->goal)
490 ctf_integer(__u64, pleft, ar->pleft)
491 ctf_integer(__u64, pright, ar->pright)
492 ctf_integer(unsigned int, flags, ar->flags)
493 )
b87700e3
AG
494)
495
3bc29f0a 496LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
b87700e3
AG
497 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
498 int flags),
499
500 TP_ARGS(inode, block, count, flags),
b87700e3 501
f127e61e
MD
502 TP_FIELDS(
503 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
504 ctf_integer(ino_t, ino, inode->i_ino)
505 ctf_integer(__u64, block, block)
506 ctf_integer(unsigned long, count, count)
f127e61e
MD
507 ctf_integer(int, flags, flags)
508 ctf_integer(TP_MODE_T, mode, inode->i_mode)
f127e61e 509 )
b87700e3
AG
510)
511
3bc29f0a 512LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter,
b87700e3
AG
513 TP_PROTO(struct file *file, int datasync),
514
515 TP_ARGS(file, datasync),
b87700e3 516
f127e61e 517 TP_FIELDS(
f127e61e
MD
518 ctf_integer(dev_t, dev, file->f_path.dentry->d_inode->i_sb->s_dev)
519 ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
520 ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
f127e61e
MD
521 ctf_integer(int, datasync, datasync)
522 )
b87700e3
AG
523)
524
3bc29f0a 525LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit,
b87700e3
AG
526 TP_PROTO(struct inode *inode, int ret),
527
528 TP_ARGS(inode, ret),
529
f127e61e
MD
530 TP_FIELDS(
531 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
532 ctf_integer(ino_t, ino, inode->i_ino)
533 ctf_integer(int, ret, ret)
534 )
b87700e3 535)
b87700e3 536
3bc29f0a 537LTTNG_TRACEPOINT_EVENT(ext4_sync_fs,
b87700e3
AG
538 TP_PROTO(struct super_block *sb, int wait),
539
540 TP_ARGS(sb, wait),
541
f127e61e
MD
542 TP_FIELDS(
543 ctf_integer(dev_t, dev, sb->s_dev)
544 ctf_integer(int, wait, wait)
b87700e3 545
f127e61e 546 )
b87700e3
AG
547)
548
5f4c791e 549#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
cf101116
MJ
550LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
551 TP_PROTO(struct inode *inode),
552
553 TP_ARGS(inode),
554
555 TP_FIELDS(
556 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
557 ctf_integer(ino_t, ino, inode->i_ino)
558 ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
559 )
560)
561#else
3bc29f0a 562LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
b87700e3
AG
563 TP_PROTO(struct inode *inode),
564
565 TP_ARGS(inode),
566
f127e61e
MD
567 TP_FIELDS(
568 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
569 ctf_integer(ino_t, ino, inode->i_ino)
570 ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
571 ctf_integer(unsigned int, meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
572 )
b87700e3 573)
cf101116 574#endif
b87700e3 575
3bc29f0a 576LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
b87700e3
AG
577 TP_PROTO(struct ext4_allocation_context *ac),
578
579 TP_ARGS(ac),
580
f127e61e
MD
581 TP_FIELDS(
582 ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
583 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
584 ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
585 ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
586 ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
587 ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
588 ctf_integer(__u32, goal_logical, ac->ac_g_ex.fe_logical)
589 ctf_integer(int, goal_start, ac->ac_g_ex.fe_start)
590 ctf_integer(__u32, goal_group, ac->ac_g_ex.fe_group)
591 ctf_integer(int, goal_len, ac->ac_g_ex.fe_len)
592 ctf_integer(__u32, result_logical, ac->ac_f_ex.fe_logical)
593 ctf_integer(int, result_start, ac->ac_f_ex.fe_start)
594 ctf_integer(__u32, result_group, ac->ac_f_ex.fe_group)
595 ctf_integer(int, result_len, ac->ac_f_ex.fe_len)
596 ctf_integer(__u16, found, ac->ac_found)
597 ctf_integer(__u16, groups, ac->ac_groups_scanned)
598 ctf_integer(__u16, buddy, ac->ac_buddy)
599 ctf_integer(__u16, flags, ac->ac_flags)
600 ctf_integer(__u16, tail, ac->ac_tail)
601 ctf_integer(__u8, cr, ac->ac_criteria)
602 )
b87700e3
AG
603)
604
3bc29f0a 605LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
b87700e3
AG
606 TP_PROTO(struct ext4_allocation_context *ac),
607
608 TP_ARGS(ac),
609
f127e61e
MD
610 TP_FIELDS(
611 ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
612 ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
613 ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
614 ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
615 ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
616 ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
617 ctf_integer(__u32, result_logical, ac->ac_b_ex.fe_logical)
618 ctf_integer(int, result_start, ac->ac_b_ex.fe_start)
619 ctf_integer(__u32, result_group, ac->ac_b_ex.fe_group)
620 ctf_integer(int, result_len, ac->ac_b_ex.fe_len)
621 )
b87700e3
AG
622)
623
3bc29f0a 624LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
b87700e3
AG
625 TP_PROTO(struct super_block *sb,
626 struct inode *inode,
627 ext4_group_t group,
628 ext4_grpblk_t start,
629 ext4_grpblk_t len),
630
631 TP_ARGS(sb, inode, group, start, len),
b87700e3 632
f127e61e 633 TP_FIELDS(
f127e61e
MD
634 ctf_integer(dev_t, dev, sb->s_dev)
635 ctf_integer(ino_t, ino, inode ? inode->i_ino : 0)
636 ctf_integer(int, result_start, start)
637 ctf_integer(__u32, result_group, group)
638 ctf_integer(int, result_len, len)
b87700e3
AG
639 )
640)
641
3bc29f0a 642LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_discard,
b87700e3 643
b87700e3
AG
644 TP_PROTO(struct super_block *sb,
645 struct inode *inode,
646 ext4_group_t group,
647 ext4_grpblk_t start,
648 ext4_grpblk_t len),
649
650 TP_ARGS(sb, inode, group, start, len)
b87700e3
AG
651)
652
3bc29f0a 653LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_free,
b87700e3 654
b87700e3
AG
655 TP_PROTO(struct super_block *sb,
656 struct inode *inode,
657 ext4_group_t group,
658 ext4_grpblk_t start,
659 ext4_grpblk_t len),
660
661 TP_ARGS(sb, inode, group, start, len)
b87700e3
AG
662)
663
3bc29f0a 664LTTNG_TRACEPOINT_EVENT(ext4_forget,
b87700e3
AG
665 TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
666
667 TP_ARGS(inode, is_metadata, block),
668
f127e61e
MD
669 TP_FIELDS(
670 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
671 ctf_integer(ino_t, ino, inode->i_ino)
672 ctf_integer(__u64, block, block)
673 ctf_integer(int, is_metadata, is_metadata)
674 ctf_integer(TP_MODE_T, mode, inode->i_mode)
675 )
b87700e3 676)
b87700e3 677
5f4c791e 678#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
3bc29f0a 679LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
b87700e3
AG
680 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
681
682 TP_ARGS(inode, used_blocks, quota_claim),
cf101116
MJ
683
684 TP_FIELDS(
685 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
686 ctf_integer(ino_t, ino, inode->i_ino)
687 ctf_integer(__u64, i_blocks, inode->i_blocks)
688 ctf_integer(int, used_blocks, used_blocks)
689 ctf_integer(int, reserved_data_blocks,
690 EXT4_I(inode)->i_reserved_data_blocks)
691 ctf_integer(int, quota_claim, quota_claim)
692 ctf_integer(TP_MODE_T, mode, inode->i_mode)
693 )
694)
09b8e4f6 695#else
cf101116
MJ
696LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
697 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
698
699 TP_ARGS(inode, used_blocks, quota_claim),
700
701 TP_FIELDS(
702 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
703 ctf_integer(ino_t, ino, inode->i_ino)
704 ctf_integer(__u64, i_blocks, inode->i_blocks)
705 ctf_integer(int, used_blocks, used_blocks)
706 ctf_integer(int, reserved_data_blocks,
707 EXT4_I(inode)->i_reserved_data_blocks)
708 ctf_integer(int, reserved_meta_blocks,
709 EXT4_I(inode)->i_reserved_meta_blocks)
710 ctf_integer(int, allocated_meta_blocks,
711 EXT4_I(inode)->i_allocated_meta_blocks)
712 ctf_integer(int, quota_claim, quota_claim)
713 ctf_integer(TP_MODE_T, mode, inode->i_mode)
714 )
715)
cf101116 716#endif
b87700e3 717
5f4c791e 718#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
cf101116
MJ
719LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
720 TP_PROTO(struct inode *inode),
721
722 TP_ARGS(inode),
723
724 TP_FIELDS(
725 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
726 ctf_integer(ino_t, ino, inode->i_ino)
727 ctf_integer(__u64, i_blocks, inode->i_blocks)
728 ctf_integer(int, reserved_data_blocks,
729 EXT4_I(inode)->i_reserved_data_blocks)
730 ctf_integer(TP_MODE_T, mode, inode->i_mode)
731 )
732)
09b8e4f6 733#else
5780f1e8
MD
734LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
735 TP_PROTO(struct inode *inode),
736
737 TP_ARGS(inode),
738
739 TP_FIELDS(
740 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
741 ctf_integer(ino_t, ino, inode->i_ino)
742 ctf_integer(__u64, i_blocks, inode->i_blocks)
743 ctf_integer(int, reserved_data_blocks,
744 EXT4_I(inode)->i_reserved_data_blocks)
745 ctf_integer(int, reserved_meta_blocks,
746 EXT4_I(inode)->i_reserved_meta_blocks)
747 ctf_integer(TP_MODE_T, mode, inode->i_mode)
748 )
749)
cf101116
MJ
750#endif
751
5f4c791e 752#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
cf101116
MJ
753LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
754 TP_PROTO(struct inode *inode, int freed_blocks),
755
756 TP_ARGS(inode, freed_blocks),
b87700e3 757
cf101116
MJ
758 TP_FIELDS(
759 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
760 ctf_integer(ino_t, ino, inode->i_ino)
761 ctf_integer(__u64, i_blocks, inode->i_blocks)
762 ctf_integer(int, freed_blocks, freed_blocks)
763 ctf_integer(int, reserved_data_blocks,
764 EXT4_I(inode)->i_reserved_data_blocks)
765 ctf_integer(TP_MODE_T, mode, inode->i_mode)
766 )
767)
aa71c949 768#else
3bc29f0a 769LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
b87700e3
AG
770 TP_PROTO(struct inode *inode, int freed_blocks),
771
772 TP_ARGS(inode, freed_blocks),
773
f127e61e
MD
774 TP_FIELDS(
775 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
776 ctf_integer(ino_t, ino, inode->i_ino)
777 ctf_integer(__u64, i_blocks, inode->i_blocks)
778 ctf_integer(int, freed_blocks, freed_blocks)
779 ctf_integer(int, reserved_data_blocks,
b87700e3 780 EXT4_I(inode)->i_reserved_data_blocks)
f127e61e 781 ctf_integer(int, reserved_meta_blocks,
b87700e3 782 EXT4_I(inode)->i_reserved_meta_blocks)
f127e61e 783 ctf_integer(int, allocated_meta_blocks,
b87700e3 784 EXT4_I(inode)->i_allocated_meta_blocks)
f127e61e
MD
785 ctf_integer(TP_MODE_T, mode, inode->i_mode)
786 )
b87700e3
AG
787)
788#endif
789
3bc29f0a 790LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load,
b87700e3
AG
791 TP_PROTO(struct super_block *sb, unsigned long group),
792
793 TP_ARGS(sb, group),
794
f127e61e
MD
795 TP_FIELDS(
796 ctf_integer(dev_t, dev, sb->s_dev)
797 ctf_integer(__u32, group, group)
798 )
b87700e3
AG
799)
800
3bc29f0a 801LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load,
b87700e3
AG
802
803 TP_PROTO(struct super_block *sb, unsigned long group),
804
805 TP_ARGS(sb, group)
806)
807
3bc29f0a 808LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
b87700e3
AG
809
810 TP_PROTO(struct super_block *sb, unsigned long group),
811
812 TP_ARGS(sb, group)
813)
b87700e3 814
5f4c791e 815#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
20e546d0
MJ
816LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load,
817 TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
818
819 TP_ARGS(sb, group, prefetch),
820
821 TP_FIELDS(
822 ctf_integer(dev_t, dev, sb->s_dev)
823 ctf_integer(__u32, group, group)
824 ctf_integer(bool, prefetch, prefetch)
825 )
826)
827#else
3bc29f0a 828LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
b87700e3
AG
829
830 TP_PROTO(struct super_block *sb, unsigned long group),
831
832 TP_ARGS(sb, group)
833)
20e546d0 834#endif
b87700e3 835
3bc29f0a 836LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
b87700e3
AG
837
838 TP_PROTO(struct super_block *sb, unsigned long group),
839
840 TP_ARGS(sb, group)
841)
842
3bc29f0a 843LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter,
b87700e3
AG
844 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
845
846 TP_ARGS(inode, offset, len, rw),
847
f127e61e
MD
848 TP_FIELDS(
849 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
850 ctf_integer(ino_t, ino, inode->i_ino)
851 ctf_integer(loff_t, pos, offset)
852 ctf_integer(unsigned long, len, len)
853 ctf_integer(int, rw, rw)
854 )
b87700e3
AG
855)
856
3bc29f0a 857LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
b87700e3
AG
858 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
859 int rw, int ret),
860
861 TP_ARGS(inode, offset, len, rw, ret),
862
f127e61e
MD
863 TP_FIELDS(
864 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
865 ctf_integer(ino_t, ino, inode->i_ino)
866 ctf_integer(loff_t, pos, offset)
867 ctf_integer(unsigned long, len, len)
868 ctf_integer(int, rw, rw)
869 ctf_integer(int, ret, ret)
870 )
b87700e3
AG
871)
872
3bc29f0a 873LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
11af8f55
MD
874 TP_PROTO(struct inode *inode, loff_t offset,
875 unsigned int max_blocks, int ret),
876
877 TP_ARGS(inode, offset, max_blocks, ret),
878
f127e61e
MD
879 TP_FIELDS(
880 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
881 ctf_integer(ino_t, ino, inode->i_ino)
882 ctf_integer(loff_t, pos, offset)
883 ctf_integer(unsigned int, blocks, max_blocks)
884 ctf_integer(int, ret, ret)
885 )
11af8f55
MD
886)
887
3bc29f0a 888LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
b87700e3
AG
889 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
890
891 TP_ARGS(inode, offset, len, mode),
892
f127e61e
MD
893 TP_FIELDS(
894 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
895 ctf_integer(ino_t, ino, inode->i_ino)
896 ctf_integer(loff_t, pos, offset)
897 ctf_integer(loff_t, len, len)
898 ctf_integer(int, mode, mode)
899 )
b87700e3
AG
900)
901
3bc29f0a 902LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter,
b87700e3 903
11af8f55
MD
904 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
905
906 TP_ARGS(inode, offset, len, mode)
907)
908
3bc29f0a 909LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_punch_hole,
11af8f55
MD
910
911 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
912
913 TP_ARGS(inode, offset, len, mode)
914)
915
3bc29f0a 916LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_zero_range,
11af8f55
MD
917
918 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
919
920 TP_ARGS(inode, offset, len, mode)
921)
922
3bc29f0a 923LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
b87700e3
AG
924 TP_PROTO(struct inode *parent, struct dentry *dentry),
925
926 TP_ARGS(parent, dentry),
927
f127e61e
MD
928 TP_FIELDS(
929 ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
930 ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
931 ctf_integer(ino_t, parent, parent->i_ino)
932 ctf_integer(loff_t, size, dentry->d_inode->i_size)
933 )
b87700e3
AG
934)
935
3bc29f0a 936LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
b87700e3
AG
937 TP_PROTO(struct dentry *dentry, int ret),
938
939 TP_ARGS(dentry, ret),
940
f127e61e
MD
941 TP_FIELDS(
942 ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
943 ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
944 ctf_integer(int, ret, ret)
945 )
b87700e3
AG
946)
947
3bc29f0a 948LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
b87700e3
AG
949 TP_PROTO(struct inode *inode),
950
951 TP_ARGS(inode),
952
f127e61e
MD
953 TP_FIELDS(
954 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
955 ctf_integer(ino_t, ino, inode->i_ino)
956 ctf_integer(unsigned int, blocks, inode->i_blocks)
957 )
b87700e3
AG
958)
959
3bc29f0a 960LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
b87700e3
AG
961
962 TP_PROTO(struct inode *inode),
963
964 TP_ARGS(inode)
965)
966
3bc29f0a 967LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_exit,
b87700e3
AG
968
969 TP_PROTO(struct inode *inode),
970
971 TP_ARGS(inode)
972)
973
b87700e3 974/* 'ux' is the uninitialized extent. */
3bc29f0a 975LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
b87700e3
AG
976 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
977 struct ext4_extent *ux),
978
979 TP_ARGS(inode, map, ux),
980
f127e61e
MD
981 TP_FIELDS(
982 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
983 ctf_integer(ino_t, ino, inode->i_ino)
984 ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
985 ctf_integer(unsigned, m_len, map->m_len)
986 ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
987 ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
988 ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
989 )
b87700e3
AG
990)
991
992/*
993 * 'ux' is the uninitialized extent.
994 * 'ix' is the initialized extent to which blocks are transferred.
995 */
3bc29f0a 996LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath,
b87700e3
AG
997 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
998 struct ext4_extent *ux, struct ext4_extent *ix),
999
1000 TP_ARGS(inode, map, ux, ix),
1001
f127e61e
MD
1002 TP_FIELDS(
1003 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1004 ctf_integer(ino_t, ino, inode->i_ino)
1005 ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
1006 ctf_integer(unsigned, m_len, map->m_len)
1007 ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
1008 ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
1009 ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
1010 ctf_integer(ext4_lblk_t, i_lblk, le32_to_cpu(ix->ee_block))
1011 ctf_integer(unsigned, i_len, ext4_ext_get_actual_len(ix))
1012 ctf_integer(ext4_fsblk_t, i_pblk, ext4_ext_pblock(ix))
1013 )
b87700e3 1014)
b87700e3 1015
3bc29f0a 1016LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter,
b87700e3
AG
1017 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1018 unsigned int len, unsigned int flags),
1019
1020 TP_ARGS(inode, lblk, len, flags),
1021
f127e61e
MD
1022 TP_FIELDS(
1023 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1024 ctf_integer(ino_t, ino, inode->i_ino)
1025 ctf_integer(ext4_lblk_t, lblk, lblk)
1026 ctf_integer(unsigned int, len, len)
1027 ctf_integer(unsigned int, flags, flags)
1028 )
b87700e3
AG
1029)
1030
3bc29f0a 1031LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
b87700e3
AG
1032 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1033 unsigned len, unsigned flags),
1034
1035 TP_ARGS(inode, lblk, len, flags)
1036)
1037
3bc29f0a 1038LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
b87700e3
AG
1039 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1040 unsigned len, unsigned flags),
1041
1042 TP_ARGS(inode, lblk, len, flags)
1043)
1044
3bc29f0a 1045LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
00be8842
MD
1046 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
1047 int ret),
1048
1049 TP_ARGS(inode, flags, map, ret),
1050
f127e61e
MD
1051 TP_FIELDS(
1052 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1053 ctf_integer(ino_t, ino, inode->i_ino)
1054 ctf_integer(unsigned int, flags, flags)
1055 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1056 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1057 ctf_integer(unsigned int, len, map->m_len)
1058 ctf_integer(unsigned int, mflags, map->m_flags)
1059 ctf_integer(int, ret, ret)
1060 )
00be8842
MD
1061)
1062
3bc29f0a 1063LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
00be8842
MD
1064 TP_PROTO(struct inode *inode, unsigned flags,
1065 struct ext4_map_blocks *map, int ret),
1066
1067 TP_ARGS(inode, flags, map, ret)
1068)
1069
3bc29f0a 1070LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
00be8842
MD
1071 TP_PROTO(struct inode *inode, unsigned flags,
1072 struct ext4_map_blocks *map, int ret),
1073
1074 TP_ARGS(inode, flags, map, ret)
1075)
1076
3bc29f0a 1077LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
b87700e3
AG
1078 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
1079
1080 TP_ARGS(inode, lblk, pblk),
1081
f127e61e
MD
1082 TP_FIELDS(
1083 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1084 ctf_integer(ino_t, ino, inode->i_ino)
1085 ctf_integer(ext4_fsblk_t, pblk, pblk)
1086 ctf_integer(ext4_lblk_t, lblk, lblk)
1087 )
b87700e3
AG
1088)
1089
5f4c791e 1090#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
e68322f3
MJ
1091LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
1092 TP_PROTO(struct super_block *sb, unsigned long ino),
1093
1094 TP_ARGS(sb, ino),
1095
1096 TP_FIELDS(
1097 ctf_integer(dev_t, dev, sb->s_dev)
1098 ctf_integer(ino_t, ino, ino)
1099 )
1100)
1101#else
3bc29f0a 1102LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
b87700e3
AG
1103 TP_PROTO(struct inode *inode),
1104
1105 TP_ARGS(inode),
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 )
b87700e3 1111)
e68322f3 1112#endif
b87700e3 1113
5f4c791e 1114#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
bb0eb66d
MJ
1115
1116LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
1117 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
1118 int revoke_creds, unsigned long IP),
1119
1120 TP_ARGS(sb, blocks, rsv_blocks, revoke_creds, IP),
1121
1122 TP_FIELDS(
1123 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1124 ctf_integer_hex(unsigned long, ip, IP)
bb0eb66d
MJ
1125 ctf_integer(int, blocks, blocks)
1126 ctf_integer(int, rsv_blocks, rsv_blocks)
1127 ctf_integer(int, revoke_creds, revoke_creds)
1128 )
1129)
1130
1131LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
1132 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
1133
1134 TP_ARGS(sb, blocks, IP),
1135
1136 TP_FIELDS(
1137 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1138 ctf_integer_hex(unsigned long, ip, IP)
bb0eb66d
MJ
1139 ctf_integer(int, blocks, blocks)
1140 )
1141)
1142
09b8e4f6 1143#else
00be8842 1144
3bc29f0a 1145LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
00be8842
MD
1146 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
1147 unsigned long IP),
1148
1149 TP_ARGS(sb, blocks, rsv_blocks, IP),
1150
f127e61e
MD
1151 TP_FIELDS(
1152 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1153 ctf_integer_hex(unsigned long, ip, IP)
f127e61e
MD
1154 ctf_integer(int, blocks, blocks)
1155 ctf_integer(int, rsv_blocks, rsv_blocks)
1156 )
00be8842
MD
1157)
1158
3bc29f0a 1159LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
00be8842
MD
1160 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
1161
1162 TP_ARGS(sb, blocks, IP),
1163
f127e61e
MD
1164 TP_FIELDS(
1165 ctf_integer(dev_t, dev, sb->s_dev)
2c054599 1166 ctf_integer_hex(unsigned long, ip, IP)
f127e61e
MD
1167 ctf_integer(int, blocks, blocks)
1168 )
00be8842 1169)
b87700e3
AG
1170#endif
1171
3bc29f0a 1172LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
162774b4
MD
1173 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
1174 unsigned int allocated, ext4_fsblk_t newblock),
1175
1176 TP_ARGS(inode, map, flags, allocated, newblock),
b87700e3 1177
f127e61e
MD
1178 TP_FIELDS(
1179 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1180 ctf_integer(ino_t, ino, inode->i_ino)
f127e61e 1181 ctf_integer(int, flags, flags)
f127e61e
MD
1182 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1183 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1184 ctf_integer(unsigned int, len, map->m_len)
1185 ctf_integer(unsigned int, allocated, allocated)
1186 ctf_integer(ext4_fsblk_t, newblk, newblock)
1187 )
b87700e3
AG
1188)
1189
3bc29f0a 1190LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
b87700e3
AG
1191 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
1192
1193 TP_ARGS(sb, map, ret),
1194
f127e61e
MD
1195 TP_FIELDS(
1196 ctf_integer(dev_t, dev, sb->s_dev)
1197 ctf_integer(unsigned int, flags, map->m_flags)
1198 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
1199 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
1200 ctf_integer(unsigned int, len, map->m_len)
1201 ctf_integer(int, ret, ret)
1202 )
b87700e3
AG
1203)
1204
3bc29f0a 1205LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
b87700e3
AG
1206 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
1207 ext4_fsblk_t start),
1208
1209 TP_ARGS(inode, lblk, len, start),
1210
f127e61e
MD
1211 TP_FIELDS(
1212 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1213 ctf_integer(ino_t, ino, inode->i_ino)
1214 ctf_integer(ext4_lblk_t, lblk, lblk)
1215 ctf_integer(unsigned int, len, len)
1216 ctf_integer(ext4_fsblk_t, start, start)
1217 )
b87700e3
AG
1218)
1219
3bc29f0a 1220LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
b87700e3
AG
1221 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
1222
1223 TP_ARGS(inode, lblk, ret),
1224
f127e61e
MD
1225 TP_FIELDS(
1226 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1227 ctf_integer(ino_t, ino, inode->i_ino)
1228 ctf_integer(ext4_lblk_t, lblk, lblk)
1229 ctf_integer(int, ret, ret)
1230 )
b87700e3
AG
1231)
1232
3bc29f0a 1233LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
b87700e3
AG
1234 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
1235 int reverse, int found, ext4_lblk_t found_blk),
1236
1237 TP_ARGS(inode, from, to, reverse, found, found_blk),
1238
f127e61e
MD
1239 TP_FIELDS(
1240 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1241 ctf_integer(ino_t, ino, inode->i_ino)
1242 ctf_integer(ext4_lblk_t, from, from)
1243 ctf_integer(ext4_lblk_t, to, to)
1244 ctf_integer(int, reverse, reverse)
1245 ctf_integer(int, found, found)
1246 ctf_integer(ext4_lblk_t, found_blk, found_blk)
1247 )
b87700e3
AG
1248)
1249
3bc29f0a 1250LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
b87700e3
AG
1251 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
1252
1253 TP_ARGS(inode, lblk, len),
1254
f127e61e
MD
1255 TP_FIELDS(
1256 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1257 ctf_integer(ino_t, ino, inode->i_ino)
1258 ctf_integer(ext4_lblk_t, lblk, lblk)
1259 ctf_integer(unsigned int, len, len)
1260 )
b87700e3
AG
1261)
1262
3bc29f0a 1263LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
b87700e3
AG
1264 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
1265 unsigned short len),
1266
1267 TP_ARGS(inode, lblk, pblk, len),
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 ctf_integer(unsigned short, len, len)
1275 )
b87700e3
AG
1276)
1277
5f4c791e 1278#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
3395f24e 1279 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1280
1281LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
1282 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1283 ext4_lblk_t from, ext4_fsblk_t to,
1284 struct partial_cluster *pc),
1285
1286 TP_ARGS(inode, ex, from, to, pc),
1287
1288 TP_FIELDS(
1289 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1290 ctf_integer(ino_t, ino, inode->i_ino)
1291 ctf_integer(ext4_lblk_t, from, from)
1292 ctf_integer(ext4_lblk_t, to, to)
1293 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1294 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1295 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1296 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1297 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1298 ctf_integer(int, pc_state, pc->state)
1299 )
1300)
1301
09b8e4f6 1302#else
00be8842 1303
3bc29f0a 1304LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
00be8842
MD
1305 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
1306 ext4_lblk_t from, ext4_fsblk_t to,
1307 long long partial_cluster),
1308
1309 TP_ARGS(inode, ex, from, to, partial_cluster),
1310
f127e61e
MD
1311 TP_FIELDS(
1312 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1313 ctf_integer(ino_t, ino, inode->i_ino)
1314 ctf_integer(ext4_lblk_t, from, from)
1315 ctf_integer(ext4_lblk_t, to, to)
1316 ctf_integer(long long, partial, partial_cluster)
1317 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1318 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1319 ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
1320 )
00be8842
MD
1321)
1322
00be8842
MD
1323#endif
1324
5f4c791e 1325#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
3395f24e 1326 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1327
1328LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
1329 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1330 struct ext4_extent *ex,
1331 struct partial_cluster *pc),
1332
1333 TP_ARGS(inode, start, ex, pc),
1334
1335 TP_FIELDS(
1336 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1337 ctf_integer(ino_t, ino, inode->i_ino)
1338 ctf_integer(ext4_lblk_t, start, start)
1339 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1340 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1341 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1342 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1343 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1344 ctf_integer(int, pc_state, pc->state)
1345 )
1346)
1347
09b8e4f6 1348#else
00be8842 1349
3bc29f0a 1350LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
00be8842
MD
1351 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1352 struct ext4_extent *ex,
1353 long long partial_cluster),
1354
1355 TP_ARGS(inode, start, ex, partial_cluster),
1356
f127e61e
MD
1357 TP_FIELDS(
1358 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1359 ctf_integer(ino_t, ino, inode->i_ino)
1360 ctf_integer(long long, partial, partial_cluster)
1361 ctf_integer(ext4_lblk_t, start, start)
1362 ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
1363 ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
1364 ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
1365 )
00be8842
MD
1366)
1367
00be8842
MD
1368#endif
1369
3bc29f0a 1370LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx,
b87700e3
AG
1371 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
1372
1373 TP_ARGS(inode, pblk),
1374
f127e61e
MD
1375 TP_FIELDS(
1376 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1377 ctf_integer(ino_t, ino, inode->i_ino)
1378 ctf_integer(ext4_fsblk_t, pblk, pblk)
1379 )
b87700e3
AG
1380)
1381
3bc29f0a 1382LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
00be8842
MD
1383 TP_PROTO(struct inode *inode, ext4_lblk_t start,
1384 ext4_lblk_t end, int depth),
1385
1386 TP_ARGS(inode, start, end, depth),
1387
f127e61e
MD
1388 TP_FIELDS(
1389 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1390 ctf_integer(ino_t, ino, inode->i_ino)
1391 ctf_integer(ext4_lblk_t, start, start)
1392 ctf_integer(ext4_lblk_t, end, end)
1393 ctf_integer(int, depth, depth)
1394 )
00be8842
MD
1395)
1396
5f4c791e 1397#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
3395f24e 1398 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
85957268
MJ
1399
1400LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
1401 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
1402 int depth, struct partial_cluster *pc, __le16 eh_entries),
1403
1404 TP_ARGS(inode, start, end, depth, pc, eh_entries),
1405
1406 TP_FIELDS(
1407 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1408 ctf_integer(ino_t, ino, inode->i_ino)
1409 ctf_integer(ext4_lblk_t, start, start)
1410 ctf_integer(ext4_lblk_t, end, end)
1411 ctf_integer(int, depth, depth)
1412 ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
1413 ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
1414 ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
1415 ctf_integer(int, pc_state, pc->state)
1416 )
1417)
1418
09b8e4f6 1419#else
00be8842 1420
3bc29f0a 1421LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
00be8842
MD
1422 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
1423 int depth, long long partial, __le16 eh_entries),
1424
1425 TP_ARGS(inode, start, end, depth, partial, eh_entries),
1426
f127e61e
MD
1427 TP_FIELDS(
1428 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1429 ctf_integer(ino_t, ino, inode->i_ino)
1430 ctf_integer(ext4_lblk_t, start, start)
1431 ctf_integer(ext4_lblk_t, end, end)
1432 ctf_integer(int, depth, depth)
1433 ctf_integer(long long, partial, partial)
1434 ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
1435 )
00be8842
MD
1436)
1437
00be8842
MD
1438#endif
1439
3bc29f0a 1440LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
39aee4a0
MD
1441 TP_PROTO(struct inode *inode, struct extent_status *es),
1442
1443 TP_ARGS(inode, es),
1444
f127e61e
MD
1445 TP_FIELDS(
1446 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1447 ctf_integer(ino_t, ino, inode->i_ino)
1448 ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
1449 ctf_integer(ext4_lblk_t, len, es->es_len)
1450 ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
1451 ctf_integer(char, status, ext4_es_status(es))
1452 )
39aee4a0
MD
1453)
1454
3bc29f0a 1455LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent,
39aee4a0
MD
1456 TP_PROTO(struct inode *inode, struct extent_status *es),
1457
1458 TP_ARGS(inode, es)
1459)
1460
3bc29f0a 1461LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_cache_extent,
39aee4a0
MD
1462 TP_PROTO(struct inode *inode, struct extent_status *es),
1463
1464 TP_ARGS(inode, es)
1465)
1466
5f4c791e 1467#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
e68322f3
MJ
1468LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan,
1469 TP_PROTO(struct super_block *sb, int error, int off),
1470
1471 TP_ARGS(sb, error, off),
1472
1473 TP_FIELDS(
1474 ctf_integer(dev_t, dev, sb->s_dev)
1475 ctf_integer(int, error, error)
1476 ctf_integer(int, off, off)
1477 )
1478)
1479
1480LTTNG_TRACEPOINT_EVENT(ext4_fc_replay,
1481 TP_PROTO(struct super_block *sb, int tag, int ino, int priv1, int priv2),
1482
1483 TP_ARGS(sb, tag, ino, priv1, priv2),
1484
1485 TP_FIELDS(
1486 ctf_integer(dev_t, dev, sb->s_dev)
1487 ctf_integer(int, tag, tag)
1488 ctf_integer(int, ino, ino)
1489 ctf_integer(int, priv1, priv1)
1490 ctf_integer(int, priv2, priv2)
1491 )
1492)
1493#endif
1494
3bc29f0a 1495#endif /* LTTNG_TRACE_EXT4_H */
b87700e3
AG
1496
1497/* This part must be outside protection */
3b4aafcb 1498#include <lttng/define_trace.h>
This page took 0.128525 seconds and 4 git commands to generate.