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