1 // SPDX-FileCopyrightText: 2012 Andrew Gabbasov <andrew_gabbasov@mentor.com>
3 // SPDX-License-Identifier: GPL-2.0-only
6 #define TRACE_SYSTEM ext4
8 #if !defined(LTTNG_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define LTTNG_TRACE_EXT4_H
11 #include <lttng/tracepoint-event.h>
12 #include <linux/writeback.h>
13 #include <lttng/kernel-version.h>
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
;
22 struct ext4_map_blocks
;
26 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
27 #define TP_MODE_T __u16
29 LTTNG_TRACEPOINT_EVENT(ext4_free_inode
,
30 TP_PROTO(struct inode
*inode
),
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
)
44 LTTNG_TRACEPOINT_EVENT(ext4_request_inode
,
45 TP_PROTO(struct inode
*dir
, int mode
),
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
)
56 LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode
,
57 TP_PROTO(struct inode
*inode
, struct inode
*dir
, int mode
),
59 TP_ARGS(inode
, dir
, mode
),
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
)
69 LTTNG_TRACEPOINT_EVENT(ext4_evict_inode
,
70 TP_PROTO(struct inode
*inode
),
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
)
81 LTTNG_TRACEPOINT_EVENT(ext4_drop_inode
,
82 TP_PROTO(struct inode
*inode
, int drop
),
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
)
93 LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty
,
94 TP_PROTO(struct inode
*inode
, unsigned long IP
),
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
)
105 LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate
,
106 TP_PROTO(struct inode
*inode
, loff_t new_size
),
108 TP_ARGS(inode
, new_size
),
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
)
117 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0))
118 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin
,
120 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
),
122 TP_ARGS(inode
, pos
, len
),
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
)
132 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_write_begin
,
134 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
),
136 TP_ARGS(inode
, pos
, len
)
139 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_da_write_begin
,
141 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
),
143 TP_ARGS(inode
, pos
, len
)
146 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin
,
148 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
151 TP_ARGS(inode
, pos
, len
, flags
),
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
)
162 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_write_begin
,
164 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
167 TP_ARGS(inode
, pos
, len
, flags
)
170 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin
, ext4_da_write_begin
,
172 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
175 TP_ARGS(inode
, pos
, len
, flags
)
177 #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0)) */
179 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end
,
180 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
181 unsigned int copied
),
183 TP_ARGS(inode
, pos
, len
, copied
),
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
)
194 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_ordered_write_end
,
196 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
197 unsigned int copied
),
199 TP_ARGS(inode
, pos
, len
, copied
)
202 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_writeback_write_end
,
204 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
205 unsigned int copied
),
207 TP_ARGS(inode
, pos
, len
, copied
)
210 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_journalled_write_end
,
212 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
213 unsigned int copied
),
215 TP_ARGS(inode
, pos
, len
, copied
)
218 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end
, ext4_da_write_end
,
220 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
221 unsigned int copied
),
223 TP_ARGS(inode
, pos
, len
, copied
)
226 LTTNG_TRACEPOINT_EVENT(ext4_da_writepages
,
227 TP_PROTO(struct inode
*inode
, struct writeback_control
*wbc
),
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
)
245 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages
,
246 TP_PROTO(struct inode
*inode
, pgoff_t first_page
,
247 struct writeback_control
*wbc
),
249 TP_ARGS(inode
, first_page
, wbc
),
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
)
260 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent
,
261 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
),
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
)
274 LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result
,
275 TP_PROTO(struct inode
*inode
, struct writeback_control
*wbc
,
276 int ret
, int pages_written
),
278 TP_ARGS(inode
, wbc
, ret
, pages_written
),
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
)
291 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op
,
292 TP_PROTO(struct page
*page
),
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
)
303 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op
, ext4_writepage
,
305 TP_PROTO(struct page
*page
),
310 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op
, ext4_readpage
,
312 TP_PROTO(struct page
*page
),
317 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op
, ext4_releasepage
,
319 TP_PROTO(struct page
*page
),
324 LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op
,
325 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
327 TP_ARGS(page
, offset
, length
),
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
)
338 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op
, ext4_invalidatepage
,
339 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
341 TP_ARGS(page
, offset
, length
)
344 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op
, ext4_journalled_invalidatepage
,
345 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
347 TP_ARGS(page
, offset
, length
)
350 LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks
,
351 TP_PROTO(struct super_block
*sb
, unsigned long long blk
,
352 unsigned long long count
),
354 TP_ARGS(sb
, blk
, count
),
357 ctf_integer(dev_t
, dev
, sb
->s_dev
)
358 ctf_integer(__u64
, blk
, blk
)
359 ctf_integer(__u64
, count
, count
)
363 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa
,
364 TP_PROTO(struct ext4_allocation_context
*ac
,
365 struct ext4_prealloc_space
*pa
),
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
)
378 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa
, ext4_mb_new_inode_pa
,
380 TP_PROTO(struct ext4_allocation_context
*ac
,
381 struct ext4_prealloc_space
*pa
),
386 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa
, ext4_mb_new_group_pa
,
388 TP_PROTO(struct ext4_allocation_context
*ac
,
389 struct ext4_prealloc_space
*pa
),
394 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa
,
396 struct ext4_prealloc_space
*pa
,
397 unsigned long long block
, unsigned int count
),
399 TP_ARGS(pa
, block
, count
),
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
)
409 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa
,
411 TP_PROTO(struct super_block
*sb
, struct ext4_prealloc_space
*pa
),
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
)
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
),
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
)
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
),
439 TP_ARGS(inode
, len
, needed
),
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
)
449 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations
,
450 TP_PROTO(struct inode
*inode
),
455 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
456 ctf_integer(ino_t
, ino
, inode
->i_ino
)
461 LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations
,
462 TP_PROTO(struct super_block
*sb
, int needed
),
467 ctf_integer(dev_t
, dev
, sb
->s_dev
)
468 ctf_integer(int, needed
, needed
)
472 LTTNG_TRACEPOINT_EVENT(ext4_request_blocks
,
473 TP_PROTO(struct ext4_allocation_request
*ar
),
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
)
491 LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks
,
492 TP_PROTO(struct ext4_allocation_request
*ar
, unsigned long long block
),
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
)
511 LTTNG_TRACEPOINT_EVENT(ext4_free_blocks
,
512 TP_PROTO(struct inode
*inode
, __u64 block
, unsigned long count
,
515 TP_ARGS(inode
, block
, count
, flags
),
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
)
527 LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter
,
528 TP_PROTO(struct file
*file
, int datasync
),
530 TP_ARGS(file
, datasync
),
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
)
540 LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit
,
541 TP_PROTO(struct inode
*inode
, int ret
),
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
)
552 LTTNG_TRACEPOINT_EVENT(ext4_sync_fs
,
553 TP_PROTO(struct super_block
*sb
, int wait
),
558 ctf_integer(dev_t
, dev
, sb
->s_dev
)
559 ctf_integer(int, wait
, wait
)
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
),
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
)
577 LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks
,
578 TP_PROTO(struct inode
*inode
),
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
)
591 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc
,
592 TP_PROTO(struct ext4_allocation_context
*ac
),
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
)
620 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc
,
621 TP_PROTO(struct ext4_allocation_context
*ac
),
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
)
639 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc
,
640 TP_PROTO(struct super_block
*sb
,
646 TP_ARGS(sb
, inode
, group
, start
, len
),
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
)
657 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc
, ext4_mballoc_discard
,
659 TP_PROTO(struct super_block
*sb
,
665 TP_ARGS(sb
, inode
, group
, start
, len
)
668 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc
, ext4_mballoc_free
,
670 TP_PROTO(struct super_block
*sb
,
676 TP_ARGS(sb
, inode
, group
, start
, len
)
679 LTTNG_TRACEPOINT_EVENT(ext4_forget
,
680 TP_PROTO(struct inode
*inode
, int is_metadata
, __u64 block
),
682 TP_ARGS(inode
, is_metadata
, block
),
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
)
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
),
697 TP_ARGS(inode
, used_blocks
, quota_claim
),
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
)
711 LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space
,
712 TP_PROTO(struct inode
*inode
, int used_blocks
, int quota_claim
),
714 TP_ARGS(inode
, used_blocks
, quota_claim
),
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
)
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
),
737 TP_ARGS(inode
, nr_resv
),
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
)
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
),
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
)
765 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space
,
766 TP_PROTO(struct inode
*inode
),
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
)
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
),
787 TP_ARGS(inode
, freed_blocks
),
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
)
800 LTTNG_TRACEPOINT_EVENT(ext4_da_release_space
,
801 TP_PROTO(struct inode
*inode
, int freed_blocks
),
803 TP_ARGS(inode
, freed_blocks
),
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
)
821 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load
,
822 TP_PROTO(struct super_block
*sb
, unsigned long group
),
827 ctf_integer(dev_t
, dev
, sb
->s_dev
)
828 ctf_integer(__u32
, group
, group
)
832 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_mb_bitmap_load
,
834 TP_PROTO(struct super_block
*sb
, unsigned long group
),
839 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_mb_buddy_bitmap_load
,
841 TP_PROTO(struct super_block
*sb
, unsigned long group
),
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
),
850 TP_ARGS(sb
, group
, prefetch
),
853 ctf_integer(dev_t
, dev
, sb
->s_dev
)
854 ctf_integer(__u32
, group
, group
)
855 ctf_integer(bool, prefetch
, prefetch
)
859 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_read_block_bitmap_load
,
861 TP_PROTO(struct super_block
*sb
, unsigned long group
),
867 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load
, ext4_load_inode_bitmap
,
869 TP_PROTO(struct super_block
*sb
, unsigned long group
),
874 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter
,
875 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
, int rw
),
877 TP_ARGS(inode
, offset
, len
, rw
),
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
)
888 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit
,
889 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
,
892 TP_ARGS(inode
, offset
, len
, rw
, ret
),
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
)
904 LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit
,
905 TP_PROTO(struct inode
*inode
, loff_t offset
,
906 unsigned int max_blocks
, int ret
),
908 TP_ARGS(inode
, offset
, max_blocks
, ret
),
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
)
919 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode
,
920 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
922 TP_ARGS(inode
, offset
, len
, mode
),
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
)
933 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode
, ext4_fallocate_enter
,
935 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
937 TP_ARGS(inode
, offset
, len
, mode
)
940 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode
, ext4_punch_hole
,
942 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
944 TP_ARGS(inode
, offset
, len
, mode
)
947 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode
, ext4_zero_range
,
949 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
951 TP_ARGS(inode
, offset
, len
, mode
)
954 LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter
,
955 TP_PROTO(struct inode
*parent
, struct dentry
*dentry
),
957 TP_ARGS(parent
, dentry
),
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
)
967 LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit
,
968 TP_PROTO(struct dentry
*dentry
, int ret
),
970 TP_ARGS(dentry
, ret
),
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
)
979 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate
,
980 TP_PROTO(struct inode
*inode
),
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
)
991 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate
, ext4_truncate_enter
,
993 TP_PROTO(struct inode
*inode
),
998 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate
, ext4_truncate_exit
,
1000 TP_PROTO(struct inode
*inode
),
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
),
1010 TP_ARGS(inode
, map
, ux
),
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
))
1024 * 'ux' is the uninitialized extent.
1025 * 'ix' is the initialized extent to which blocks are transferred.
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
),
1031 TP_ARGS(inode
, map
, ux
, ix
),
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
))
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
),
1051 TP_ARGS(inode
, lblk
, len
, flags
),
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
)
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
),
1066 TP_ARGS(inode
, lblk
, len
, flags
)
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
),
1073 TP_ARGS(inode
, lblk
, len
, flags
)
1076 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit
,
1077 TP_PROTO(struct inode
*inode
, unsigned flags
, struct ext4_map_blocks
*map
,
1080 TP_ARGS(inode
, flags
, map
, ret
),
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
)
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
),
1098 TP_ARGS(inode
, flags
, map
, ret
)
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
),
1105 TP_ARGS(inode
, flags
, map
, ret
)
1108 LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent
,
1109 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, ext4_fsblk_t pblk
),
1111 TP_ARGS(inode
, lblk
, pblk
),
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
)
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
),
1128 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1129 ctf_integer(ino_t
, ino
, ino
)
1133 LTTNG_TRACEPOINT_EVENT(ext4_load_inode
,
1134 TP_PROTO(struct inode
*inode
),
1139 ctf_integer(dev_t
, dev
, inode
->i_sb
->s_dev
)
1140 ctf_integer(ino_t
, ino
, inode
->i_ino
)
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))
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
),
1152 TP_ARGS(sb
, blocks
, rsv_blocks
, revoke_creds
, IP
),
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
)
1163 LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved
,
1164 TP_PROTO(struct super_block
*sb
, int blocks
, unsigned long IP
),
1166 TP_ARGS(sb
, blocks
, IP
),
1169 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1170 ctf_integer_hex(unsigned long, ip
, IP
)
1171 ctf_integer(int, blocks
, blocks
)
1177 LTTNG_TRACEPOINT_EVENT(ext4_journal_start
,
1178 TP_PROTO(struct super_block
*sb
, int blocks
, int rsv_blocks
,
1181 TP_ARGS(sb
, blocks
, rsv_blocks
, IP
),
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
)
1191 LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved
,
1192 TP_PROTO(struct super_block
*sb
, int blocks
, unsigned long IP
),
1194 TP_ARGS(sb
, blocks
, IP
),
1197 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1198 ctf_integer_hex(unsigned long, ip
, IP
)
1199 ctf_integer(int, blocks
, blocks
)
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
),
1208 TP_ARGS(inode
, map
, flags
, allocated
, newblock
),
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
)
1222 LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit
,
1223 TP_PROTO(struct super_block
*sb
, struct ext4_map_blocks
*map
, int ret
),
1225 TP_ARGS(sb
, map
, ret
),
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
)
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
),
1241 TP_ARGS(inode
, lblk
, len
, start
),
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
)
1252 LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache
,
1253 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, int ret
),
1255 TP_ARGS(inode
, lblk
, ret
),
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
)
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
),
1269 TP_ARGS(inode
, from
, to
, reverse
, found
, found_blk
),
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
)
1282 LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc
,
1283 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, unsigned int len
),
1285 TP_ARGS(inode
, lblk
, len
),
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
)
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
),
1299 TP_ARGS(inode
, lblk
, pblk
, len
),
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
)
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))
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
),
1318 TP_ARGS(inode
, ex
, from
, to
, pc
),
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
)
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
),
1341 TP_ARGS(inode
, ex
, from
, to
, partial_cluster
),
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
))
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))
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
),
1365 TP_ARGS(inode
, start
, ex
, pc
),
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
)
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
),
1387 TP_ARGS(inode
, start
, ex
, partial_cluster
),
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
))
1402 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx
,
1403 TP_PROTO(struct inode
*inode
, ext4_fsblk_t pblk
),
1405 TP_ARGS(inode
, pblk
),
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
)
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
),
1418 TP_ARGS(inode
, start
, end
, depth
),
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
)
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))
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
),
1436 TP_ARGS(inode
, start
, end
, depth
, pc
, eh_entries
),
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
)
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
),
1457 TP_ARGS(inode
, start
, end
, depth
, partial
, eh_entries
),
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
))
1472 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent
,
1473 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
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
))
1487 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent
, ext4_es_insert_extent
,
1488 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
1493 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent
, ext4_es_cache_extent
,
1494 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
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
),
1503 TP_ARGS(sb
, error
, off
),
1506 ctf_integer(dev_t
, dev
, sb
->s_dev
)
1507 ctf_integer(int, error
, error
)
1508 ctf_integer(int, off
, off
)
1512 LTTNG_TRACEPOINT_EVENT(ext4_fc_replay
,
1513 TP_PROTO(struct super_block
*sb
, int tag
, int ino
, int priv1
, int priv2
),
1515 TP_ARGS(sb
, tag
, ino
, priv1
, priv2
),
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
)
1527 #endif /* LTTNG_TRACE_EXT4_H */
1529 /* This part must be outside protection */
1530 #include <lttng/define_trace.h>