Fix: scsi: sd: Atomic write support added in 6.11-rc1
[lttng-modules.git] / include / instrumentation / events / ext4.h
... / ...
CommitLineData
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_
17struct ext4_allocation_context;
18struct ext4_allocation_request;
19struct ext4_prealloc_space;
20struct ext4_inode_info;
21struct mpage_da_data;
22struct ext4_map_blocks;
23struct 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
29LTTNG_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
44LTTNG_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
56LTTNG_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
69LTTNG_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
81LTTNG_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
93LTTNG_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
105LTTNG_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))
118LTTNG_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
132LTTNG_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
139LTTNG_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
146LTTNG_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
162LTTNG_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
170LTTNG_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
179LTTNG_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
194LTTNG_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
202LTTNG_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
210LTTNG_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
218LTTNG_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
226LTTNG_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
245LTTNG_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
260LTTNG_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
274LTTNG_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
291LTTNG_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
303LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_writepage,
304
305 TP_PROTO(struct page *page),
306
307 TP_ARGS(page)
308)
309
310LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_readpage,
311
312 TP_PROTO(struct page *page),
313
314 TP_ARGS(page)
315)
316
317LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_releasepage,
318
319 TP_PROTO(struct page *page),
320
321 TP_ARGS(page)
322)
323
324LTTNG_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
338LTTNG_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
344LTTNG_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
350LTTNG_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
363LTTNG_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
378LTTNG_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
386LTTNG_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
394LTTNG_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
409LTTNG_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))
423LTTNG_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))
436LTTNG_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
449LTTNG_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
461LTTNG_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
472LTTNG_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
491LTTNG_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
511LTTNG_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
527LTTNG_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
540LTTNG_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
552LTTNG_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))
565LTTNG_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
577LTTNG_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
591LTTNG_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
620LTTNG_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
639LTTNG_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
657LTTNG_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
668LTTNG_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
679LTTNG_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))
694LTTNG_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
711LTTNG_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))
734LTTNG_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))
750LTTNG_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
765LTTNG_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))
784LTTNG_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
800LTTNG_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
821LTTNG_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
832LTTNG_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
839LTTNG_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))
847LTTNG_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
859LTTNG_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
867LTTNG_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
874LTTNG_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
888LTTNG_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
904LTTNG_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
919LTTNG_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
933LTTNG_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
940LTTNG_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
947LTTNG_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
954LTTNG_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
967LTTNG_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
979LTTNG_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
991LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
992
993 TP_PROTO(struct inode *inode),
994
995 TP_ARGS(inode)
996)
997
998LTTNG_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. */
1006LTTNG_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 */
1027LTTNG_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
1047LTTNG_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
1062LTTNG_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
1069LTTNG_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
1076LTTNG_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
1094LTTNG_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
1101LTTNG_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
1108LTTNG_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))
1122LTTNG_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
1133LTTNG_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
1148LTTNG_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
1163LTTNG_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
1177LTTNG_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
1191LTTNG_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
1204LTTNG_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
1222LTTNG_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
1237LTTNG_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
1252LTTNG_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
1265LTTNG_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
1282LTTNG_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
1295LTTNG_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
1313LTTNG_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
1336LTTNG_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
1360LTTNG_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
1382LTTNG_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
1402LTTNG_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
1414LTTNG_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
1432LTTNG_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
1453LTTNG_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
1472LTTNG_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
1487LTTNG_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
1493LTTNG_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))
1500LTTNG_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
1512LTTNG_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.029895 seconds and 5 git commands to generate.