1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM ext4
5 #if !defined(LTTNG_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_EXT4_H
8 #include <lttng/tracepoint-event.h>
9 #include <linux/writeback.h>
10 #include <lttng/kernel-version.h>
12 #ifndef _TRACE_EXT4_DEF_
13 #define _TRACE_EXT4_DEF_
14 struct ext4_allocation_context
;
15 struct ext4_allocation_request
;
16 struct ext4_prealloc_space
;
17 struct ext4_inode_info
;
19 struct ext4_map_blocks
;
23 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
24 #define TP_MODE_T __u16
26 LTTNG_TRACEPOINT_EVENT(ext4_free_inode
,
27 TP_PROTO(struct inode
*inode
),
32 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
33 ctf_integer(ino_t
, ino
, inode
->i_ino
)
34 ctf_integer(uid_t
, uid
, i_uid_read(inode
))
35 ctf_integer(gid_t
, gid
, i_gid_read(inode
))
36 ctf_integer(__u64
, blocks
, inode
->i_blocks
)
37 ctf_integer(TP_MODE_T
, mode
, inode
->i_mode
)
41 LTTNG_TRACEPOINT_EVENT(ext4_request_inode
,
42 TP_PROTO(struct inode
*dir
, int mode
),
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
)
53 LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode
,
54 TP_PROTO(struct inode
*inode
, struct inode
*dir
, int mode
),
56 TP_ARGS(inode
, dir
, mode
),
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
)
66 LTTNG_TRACEPOINT_EVENT(ext4_evict_inode
,
67 TP_PROTO(struct inode
*inode
),
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
)
78 LTTNG_TRACEPOINT_EVENT(ext4_drop_inode
,
79 TP_PROTO(struct inode
*inode
, int drop
),
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
)
90 LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty
,
91 TP_PROTO(struct inode
*inode
, unsigned long IP
),
96 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
97 ctf_integer(ino_t
, ino
, inode
->i_ino
)
98 ctf_integer_hex(unsigned long, ip
, IP
)
102 LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate
,
103 TP_PROTO(struct inode
*inode
, loff_t new_size
),
105 TP_ARGS(inode
, new_size
),
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
)
114 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0))
115 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin
,
117 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
),
119 TP_ARGS(inode
, pos
, len
),
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
)
129 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_write_begin
,
131 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
),
133 TP_ARGS(inode
, pos
, len
)
136 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_da_write_begin
,
138 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
),
140 TP_ARGS(inode
, pos
, len
)
143 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin
,
145 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
148 TP_ARGS(inode
, pos
, len
, flags
),
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
)
159 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_write_begin
,
161 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
164 TP_ARGS(inode
, pos
, len
, flags
)
167 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_da_write_begin
,
169 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
172 TP_ARGS(inode
, pos
, len
, flags
)
174 #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0)) */
176 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end
,
177 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
178 unsigned int copied
),
180 TP_ARGS(inode
, pos
, len
, copied
),
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
)
191 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_ordered_write_end
,
193 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
194 unsigned int copied
),
196 TP_ARGS(inode
, pos
, len
, copied
)
199 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_writeback_write_end
,
201 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
202 unsigned int copied
),
204 TP_ARGS(inode
, pos
, len
, copied
)
207 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_journalled_write_end
,
209 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
210 unsigned int copied
),
212 TP_ARGS(inode
, pos
, len
, copied
)
215 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_da_write_end
,
217 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
218 unsigned int copied
),
220 TP_ARGS(inode
, pos
, len
, copied
)
223 LTTNG_TRACEPOINT_EVENT(ext4_da_writepages
,
224 TP_PROTO(struct inode
*inode
, struct writeback_control
*wbc
),
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
)
236 ctf_integer(int, sync_mode
, wbc
->sync_mode
)
237 ctf_integer(char, for_kupdate
, wbc
->for_kupdate
)
238 ctf_integer(char, range_cyclic
, wbc
->range_cyclic
)
242 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages
,
243 TP_PROTO(struct inode
*inode
, pgoff_t first_page
,
244 struct writeback_control
*wbc
),
246 TP_ARGS(inode
, first_page
, wbc
),
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
)
257 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent
,
258 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
),
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
)
271 LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result
,
272 TP_PROTO(struct inode
*inode
, struct writeback_control
*wbc
,
273 int ret
, int pages_written
),
275 TP_ARGS(inode
, wbc
, ret
, pages_written
),
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
)
284 ctf_integer(int, sync_mode
, wbc
->sync_mode
)
288 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op
,
289 TP_PROTO(struct page
*page
),
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
)
300 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op
, ext4_writepage
,
302 TP_PROTO(struct page
*page
),
307 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op
, ext4_readpage
,
309 TP_PROTO(struct page
*page
),
314 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op
, ext4_releasepage
,
316 TP_PROTO(struct page
*page
),
321 LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op
,
322 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
324 TP_ARGS(page
, offset
, length
),
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
)
335 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op
, ext4_invalidatepage
,
336 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
338 TP_ARGS(page
, offset
, length
)
341 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op
, ext4_journalled_invalidatepage
,
342 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
344 TP_ARGS(page
, offset
, length
)
347 LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks
,
348 TP_PROTO(struct super_block
*sb
, unsigned long long blk
,
349 unsigned long long count
),
351 TP_ARGS(sb
, blk
, count
),
354 ctf_integer(dev_t
, dev
, sb
->s_dev
)
355 ctf_integer(__u64
, blk
, blk
)
356 ctf_integer(__u64
, count
, count
)
360 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa
,
361 TP_PROTO(struct ext4_allocation_context
*ac
,
362 struct ext4_prealloc_space
*pa
),
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
)
375 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa
, ext4_mb_new_inode_pa
,
377 TP_PROTO(struct ext4_allocation_context
*ac
,
378 struct ext4_prealloc_space
*pa
),
383 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa
, ext4_mb_new_group_pa
,
385 TP_PROTO(struct ext4_allocation_context
*ac
,
386 struct ext4_prealloc_space
*pa
),
391 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa
,
393 struct ext4_prealloc_space
*pa
,
394 unsigned long long block
, unsigned int count
),
396 TP_ARGS(pa
, block
, count
),
399 ctf_integer(dev_t
, dev
, pa
->pa_inode
->i_sb
->s_dev
)
400 ctf_integer(ino_t
, ino
, pa
->pa_inode
->i_ino
)
401 ctf_integer(__u64
, block
, block
)
402 ctf_integer(__u32
, count
, count
)
406 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa
,
408 TP_PROTO(struct super_block
*sb
, struct ext4_prealloc_space
*pa
),
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
)
419 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0) || \
420 LTTNG_KERNEL_RANGE(5,8,6, 5,9,0))
421 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations
,
422 TP_PROTO(struct inode
*inode
, unsigned int len
, unsigned int needed
),
424 TP_ARGS(inode
, len
, needed
),
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
)
434 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations
,
435 TP_PROTO(struct inode
*inode
),
440 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
441 ctf_integer(ino_t
, ino
, inode
->i_ino
)
446 LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations
,
447 TP_PROTO(struct super_block
*sb
, int needed
),
452 ctf_integer(dev_t
, dev
, sb
->s_dev
)
453 ctf_integer(int, needed
, needed
)
457 LTTNG_TRACEPOINT_EVENT(ext4_request_blocks
,
458 TP_PROTO(struct ext4_allocation_request
*ar
),
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
)
476 LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks
,
477 TP_PROTO(struct ext4_allocation_request
*ar
, unsigned long long block
),
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
)
496 LTTNG_TRACEPOINT_EVENT(ext4_free_blocks
,
497 TP_PROTO(struct inode
*inode
, __u64 block
, unsigned long count
,
500 TP_ARGS(inode
, block
, count
, flags
),
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
)
507 ctf_integer(int, flags
, flags
)
508 ctf_integer(TP_MODE_T
, mode
, inode
->i_mode
)
512 LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter
,
513 TP_PROTO(struct file
*file
, int datasync
),
515 TP_ARGS(file
, datasync
),
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
)
521 ctf_integer(int, datasync
, datasync
)
525 LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit
,
526 TP_PROTO(struct inode
*inode
, int ret
),
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
)
537 LTTNG_TRACEPOINT_EVENT(ext4_sync_fs
,
538 TP_PROTO(struct super_block
*sb
, int wait
),
543 ctf_integer(dev_t
, dev
, sb
->s_dev
)
544 ctf_integer(int, wait
, wait
)
549 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
550 LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks
,
551 TP_PROTO(struct inode
*inode
),
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
)
562 LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks
,
563 TP_PROTO(struct inode
*inode
),
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
)
576 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc
,
577 TP_PROTO(struct ext4_allocation_context
*ac
),
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
)
605 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc
,
606 TP_PROTO(struct ext4_allocation_context
*ac
),
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
)
624 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc
,
625 TP_PROTO(struct super_block
*sb
,
631 TP_ARGS(sb
, inode
, group
, start
, len
),
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
)
642 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc
, ext4_mballoc_discard
,
644 TP_PROTO(struct super_block
*sb
,
650 TP_ARGS(sb
, inode
, group
, start
, len
)
653 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc
, ext4_mballoc_free
,
655 TP_PROTO(struct super_block
*sb
,
661 TP_ARGS(sb
, inode
, group
, start
, len
)
664 LTTNG_TRACEPOINT_EVENT(ext4_forget
,
665 TP_PROTO(struct inode
*inode
, int is_metadata
, __u64 block
),
667 TP_ARGS(inode
, is_metadata
, block
),
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
)
678 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
679 LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space
,
680 TP_PROTO(struct inode
*inode
, int used_blocks
, int quota_claim
),
682 TP_ARGS(inode
, used_blocks
, quota_claim
),
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
)
696 LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space
,
697 TP_PROTO(struct inode
*inode
, int used_blocks
, int quota_claim
),
699 TP_ARGS(inode
, used_blocks
, quota_claim
),
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
)
718 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
719 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space
,
720 TP_PROTO(struct inode
*inode
),
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
)
734 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space
,
735 TP_PROTO(struct inode
*inode
),
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
)
752 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
753 LTTNG_TRACEPOINT_EVENT(ext4_da_release_space
,
754 TP_PROTO(struct inode
*inode
, int freed_blocks
),
756 TP_ARGS(inode
, freed_blocks
),
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
)
769 LTTNG_TRACEPOINT_EVENT(ext4_da_release_space
,
770 TP_PROTO(struct inode
*inode
, int freed_blocks
),
772 TP_ARGS(inode
, freed_blocks
),
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
,
780 EXT4_I(inode
)->i_reserved_data_blocks
)
781 ctf_integer(int, reserved_meta_blocks
,
782 EXT4_I(inode
)->i_reserved_meta_blocks
)
783 ctf_integer(int, allocated_meta_blocks
,
784 EXT4_I(inode
)->i_allocated_meta_blocks
)
785 ctf_integer(TP_MODE_T
, mode
, inode
->i_mode
)
790 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load
,
791 TP_PROTO(struct super_block
*sb
, unsigned long group
),
796 ctf_integer(dev_t
, dev
, sb
->s_dev
)
797 ctf_integer(__u32
, group
, group
)
801 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_mb_bitmap_load
,
803 TP_PROTO(struct super_block
*sb
, unsigned long group
),
808 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_mb_buddy_bitmap_load
,
810 TP_PROTO(struct super_block
*sb
, unsigned long group
),
815 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
816 LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load
,
817 TP_PROTO(struct super_block
*sb
, unsigned long group
, bool prefetch
),
819 TP_ARGS(sb
, group
, prefetch
),
822 ctf_integer(dev_t
, dev
, sb
->s_dev
)
823 ctf_integer(__u32
, group
, group
)
824 ctf_integer(bool, prefetch
, prefetch
)
828 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_read_block_bitmap_load
,
830 TP_PROTO(struct super_block
*sb
, unsigned long group
),
836 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_load_inode_bitmap
,
838 TP_PROTO(struct super_block
*sb
, unsigned long group
),
843 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter
,
844 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
, int rw
),
846 TP_ARGS(inode
, offset
, len
, rw
),
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
)
857 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit
,
858 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
,
861 TP_ARGS(inode
, offset
, len
, rw
, ret
),
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
)
873 LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit
,
874 TP_PROTO(struct inode
*inode
, loff_t offset
,
875 unsigned int max_blocks
, int ret
),
877 TP_ARGS(inode
, offset
, max_blocks
, ret
),
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
)
888 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode
,
889 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
891 TP_ARGS(inode
, offset
, len
, mode
),
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
)
902 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode
, ext4_fallocate_enter
,
904 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
906 TP_ARGS(inode
, offset
, len
, mode
)
909 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode
, ext4_punch_hole
,
911 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
913 TP_ARGS(inode
, offset
, len
, mode
)
916 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode
, ext4_zero_range
,
918 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
920 TP_ARGS(inode
, offset
, len
, mode
)
923 LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter
,
924 TP_PROTO(struct inode
*parent
, struct dentry
*dentry
),
926 TP_ARGS(parent
, dentry
),
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
)
936 LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit
,
937 TP_PROTO(struct dentry
*dentry
, int ret
),
939 TP_ARGS(dentry
, ret
),
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
)
948 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate
,
949 TP_PROTO(struct inode
*inode
),
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
)
960 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate
, ext4_truncate_enter
,
962 TP_PROTO(struct inode
*inode
),
967 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate
, ext4_truncate_exit
,
969 TP_PROTO(struct inode
*inode
),
974 /* 'ux' is the uninitialized extent. */
975 LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter
,
976 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
,
977 struct ext4_extent
*ux
),
979 TP_ARGS(inode
, map
, ux
),
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
))
993 * 'ux' is the uninitialized extent.
994 * 'ix' is the initialized extent to which blocks are transferred.
996 LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath
,
997 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
,
998 struct ext4_extent
*ux
, struct ext4_extent
*ix
),
1000 TP_ARGS(inode
, map
, ux
, ix
),
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
))
1016 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter
,
1017 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
,
1018 unsigned int len
, unsigned int flags
),
1020 TP_ARGS(inode
, lblk
, len
, flags
),
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
)
1031 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter
, ext4_ext_map_blocks_enter
,
1032 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
,
1033 unsigned len
, unsigned flags
),
1035 TP_ARGS(inode
, lblk
, len
, flags
)
1038 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter
, ext4_ind_map_blocks_enter
,
1039 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
,
1040 unsigned len
, unsigned flags
),
1042 TP_ARGS(inode
, lblk
, len
, flags
)
1045 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit
,
1046 TP_PROTO(struct inode
*inode
, unsigned flags
, struct ext4_map_blocks
*map
,
1049 TP_ARGS(inode
, flags
, map
, ret
),
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
)
1063 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit
, ext4_ext_map_blocks_exit
,
1064 TP_PROTO(struct inode
*inode
, unsigned flags
,
1065 struct ext4_map_blocks
*map
, int ret
),
1067 TP_ARGS(inode
, flags
, map
, ret
)
1070 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit
, ext4_ind_map_blocks_exit
,
1071 TP_PROTO(struct inode
*inode
, unsigned flags
,
1072 struct ext4_map_blocks
*map
, int ret
),
1074 TP_ARGS(inode
, flags
, map
, ret
)
1077 LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent
,
1078 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, ext4_fsblk_t pblk
),
1080 TP_ARGS(inode
, lblk
, pblk
),
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
)
1090 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
1091 LTTNG_TRACEPOINT_EVENT(ext4_load_inode
,
1092 TP_PROTO(struct super_block
*sb
, unsigned long ino
),
1097 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1098 ctf_integer(ino_t
, ino
, ino
)
1102 LTTNG_TRACEPOINT_EVENT(ext4_load_inode
,
1103 TP_PROTO(struct inode
*inode
),
1108 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
1109 ctf_integer(ino_t
, ino
, inode
->i_ino
)
1114 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
1116 LTTNG_TRACEPOINT_EVENT(ext4_journal_start
,
1117 TP_PROTO(struct super_block
*sb
, int blocks
, int rsv_blocks
,
1118 int revoke_creds
, unsigned long IP
),
1120 TP_ARGS(sb
, blocks
, rsv_blocks
, revoke_creds
, IP
),
1123 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1124 ctf_integer_hex(unsigned long, ip
, IP
)
1125 ctf_integer(int, blocks
, blocks
)
1126 ctf_integer(int, rsv_blocks
, rsv_blocks
)
1127 ctf_integer(int, revoke_creds
, revoke_creds
)
1131 LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved
,
1132 TP_PROTO(struct super_block
*sb
, int blocks
, unsigned long IP
),
1134 TP_ARGS(sb
, blocks
, IP
),
1137 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1138 ctf_integer_hex(unsigned long, ip
, IP
)
1139 ctf_integer(int, blocks
, blocks
)
1145 LTTNG_TRACEPOINT_EVENT(ext4_journal_start
,
1146 TP_PROTO(struct super_block
*sb
, int blocks
, int rsv_blocks
,
1149 TP_ARGS(sb
, blocks
, rsv_blocks
, IP
),
1152 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1153 ctf_integer_hex(unsigned long, ip
, IP
)
1154 ctf_integer(int, blocks
, blocks
)
1155 ctf_integer(int, rsv_blocks
, rsv_blocks
)
1159 LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved
,
1160 TP_PROTO(struct super_block
*sb
, int blocks
, unsigned long IP
),
1162 TP_ARGS(sb
, blocks
, IP
),
1165 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1166 ctf_integer_hex(unsigned long, ip
, IP
)
1167 ctf_integer(int, blocks
, blocks
)
1172 LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents
,
1173 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
, int flags
,
1174 unsigned int allocated
, ext4_fsblk_t newblock
),
1176 TP_ARGS(inode
, map
, flags
, allocated
, newblock
),
1179 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
1180 ctf_integer(ino_t
, ino
, inode
->i_ino
)
1181 ctf_integer(int, flags
, flags
)
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
)
1190 LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit
,
1191 TP_PROTO(struct super_block
*sb
, struct ext4_map_blocks
*map
, int ret
),
1193 TP_ARGS(sb
, map
, ret
),
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
)
1205 LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache
,
1206 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, unsigned int len
,
1207 ext4_fsblk_t start
),
1209 TP_ARGS(inode
, lblk
, len
, start
),
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
)
1220 LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache
,
1221 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, int ret
),
1223 TP_ARGS(inode
, lblk
, ret
),
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
)
1233 LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range
,
1234 TP_PROTO(struct inode
*inode
, ext4_lblk_t from
, ext4_lblk_t to
,
1235 int reverse
, int found
, ext4_lblk_t found_blk
),
1237 TP_ARGS(inode
, from
, to
, reverse
, found
, found_blk
),
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
)
1250 LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc
,
1251 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, unsigned int len
),
1253 TP_ARGS(inode
, lblk
, len
),
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
)
1263 LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent
,
1264 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, ext4_fsblk_t pblk
,
1265 unsigned short len
),
1267 TP_ARGS(inode
, lblk
, pblk
, len
),
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
)
1278 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
1279 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
1281 LTTNG_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
),
1286 TP_ARGS(inode
, ex
, from
, to
, pc
),
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
)
1304 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks
,
1305 TP_PROTO(struct inode
*inode
, struct ext4_extent
*ex
,
1306 ext4_lblk_t from
, ext4_fsblk_t to
,
1307 long long partial_cluster
),
1309 TP_ARGS(inode
, ex
, from
, to
, partial_cluster
),
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
))
1325 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
1326 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
1328 LTTNG_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
),
1333 TP_ARGS(inode
, start
, ex
, pc
),
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
)
1350 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf
,
1351 TP_PROTO(struct inode
*inode
, ext4_lblk_t start
,
1352 struct ext4_extent
*ex
,
1353 long long partial_cluster
),
1355 TP_ARGS(inode
, start
, ex
, partial_cluster
),
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
))
1370 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx
,
1371 TP_PROTO(struct inode
*inode
, ext4_fsblk_t pblk
),
1373 TP_ARGS(inode
, pblk
),
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
)
1382 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space
,
1383 TP_PROTO(struct inode
*inode
, ext4_lblk_t start
,
1384 ext4_lblk_t end
, int depth
),
1386 TP_ARGS(inode
, start
, end
, depth
),
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
)
1397 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
1398 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
1400 LTTNG_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
),
1404 TP_ARGS(inode
, start
, end
, depth
, pc
, eh_entries
),
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
)
1421 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done
,
1422 TP_PROTO(struct inode
*inode
, ext4_lblk_t start
, ext4_lblk_t end
,
1423 int depth
, long long partial
, __le16 eh_entries
),
1425 TP_ARGS(inode
, start
, end
, depth
, partial
, eh_entries
),
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
))
1440 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent
,
1441 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
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
))
1455 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent
, ext4_es_insert_extent
,
1456 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
1461 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent
, ext4_es_cache_extent
,
1462 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
1467 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
1468 LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan
,
1469 TP_PROTO(struct super_block
*sb
, int error
, int off
),
1471 TP_ARGS(sb
, error
, off
),
1474 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1475 ctf_integer(int, error
, error
)
1476 ctf_integer(int, off
, off
)
1480 LTTNG_TRACEPOINT_EVENT(ext4_fc_replay
,
1481 TP_PROTO(struct super_block
*sb
, int tag
, int ino
, int priv1
, int priv2
),
1483 TP_ARGS(sb
, tag
, ino
, priv1
, priv2
),
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
)
1495 #endif /* LTTNG_TRACE_EXT4_H */
1497 /* This part must be outside protection */
1498 #include <lttng/define_trace.h>