Fix: ext4 instrumentation for 4.2 kernels
[lttng-modules.git] / instrumentation / events / lttng-module / ext4.h
CommitLineData
b87700e3
AG
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM ext4
3
3bc29f0a
MD
4#if !defined(LTTNG_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
5#define LTTNG_TRACE_EXT4_H
b87700e3 6
3bc29f0a 7#include "../../../probes/lttng-tracepoint-event.h"
b87700e3 8#include <linux/writeback.h>
b87700e3
AG
9#include <linux/version.h>
10
11#ifndef _TRACE_EXT4_DEF_
12#define _TRACE_EXT4_DEF_
13struct ext4_allocation_context;
14struct ext4_allocation_request;
15struct ext4_prealloc_space;
16struct ext4_inode_info;
17struct mpage_da_data;
18struct ext4_map_blocks;
19#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
20struct ext4_extent;
21#endif
22#endif
23
24#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
25#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
26#define TP_MODE_T __u16
27#else
28#define TP_MODE_T umode_t
29#endif
30
3bc29f0a 31LTTNG_TRACEPOINT_EVENT(ext4_free_inode,
b87700e3
AG
32 TP_PROTO(struct inode *inode),
33
34 TP_ARGS(inode),
35
36 TP_STRUCT__entry(
37 __field( dev_t, dev )
38 __field( ino_t, ino )
39 __field( uid_t, uid )
40 __field( gid_t, gid )
41 __field( __u64, blocks )
42 __field( TP_MODE_T, mode )
43 ),
44
45 TP_fast_assign(
46 tp_assign(dev, inode->i_sb->s_dev)
47 tp_assign(ino, inode->i_ino)
48#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
49 tp_assign(uid, i_uid_read(inode))
50 tp_assign(gid, i_gid_read(inode))
51#else
52 tp_assign(uid, inode->i_uid)
53 tp_assign(gid, inode->i_gid)
54#endif
55 tp_assign(blocks, inode->i_blocks)
56 tp_assign(mode, inode->i_mode)
57 ),
58
59 TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu",
60 MAJOR(__entry->dev), MINOR(__entry->dev),
61 (unsigned long) __entry->ino, __entry->mode,
62 __entry->uid, __entry->gid, __entry->blocks)
63)
64
3bc29f0a 65LTTNG_TRACEPOINT_EVENT(ext4_request_inode,
b87700e3
AG
66 TP_PROTO(struct inode *dir, int mode),
67
68 TP_ARGS(dir, mode),
69
70 TP_STRUCT__entry(
71 __field( dev_t, dev )
72 __field( ino_t, dir )
73 __field( TP_MODE_T, mode )
74 ),
75
76 TP_fast_assign(
77 tp_assign(dev, dir->i_sb->s_dev)
78 tp_assign(dir, dir->i_ino)
79 tp_assign(mode, mode)
80 ),
81
82 TP_printk("dev %d,%d dir %lu mode 0%o",
83 MAJOR(__entry->dev), MINOR(__entry->dev),
84 (unsigned long) __entry->dir, __entry->mode)
85)
86
3bc29f0a 87LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode,
b87700e3
AG
88 TP_PROTO(struct inode *inode, struct inode *dir, int mode),
89
90 TP_ARGS(inode, dir, mode),
91
92 TP_STRUCT__entry(
93 __field( dev_t, dev )
94 __field( ino_t, ino )
95 __field( ino_t, dir )
96 __field( TP_MODE_T, mode )
97 ),
98
99 TP_fast_assign(
100 tp_assign(dev, inode->i_sb->s_dev)
101 tp_assign(ino, inode->i_ino)
102 tp_assign(dir, dir->i_ino)
103 tp_assign(mode, mode)
104 ),
105
106 TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
107 MAJOR(__entry->dev), MINOR(__entry->dev),
108 (unsigned long) __entry->ino,
109 (unsigned long) __entry->dir, __entry->mode)
110)
111
112#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
3bc29f0a 113LTTNG_TRACEPOINT_EVENT(ext4_evict_inode,
b87700e3
AG
114 TP_PROTO(struct inode *inode),
115
116 TP_ARGS(inode),
117
118 TP_STRUCT__entry(
119 __field( dev_t, dev )
120 __field( ino_t, ino )
121 __field( int, nlink )
122 ),
123
124 TP_fast_assign(
125 tp_assign(dev, inode->i_sb->s_dev)
126 tp_assign(ino, inode->i_ino)
127 tp_assign(nlink, inode->i_nlink)
128 ),
129
130 TP_printk("dev %d,%d ino %lu nlink %d",
131 MAJOR(__entry->dev), MINOR(__entry->dev),
132 (unsigned long) __entry->ino, __entry->nlink)
133)
134
3bc29f0a 135LTTNG_TRACEPOINT_EVENT(ext4_drop_inode,
b87700e3
AG
136 TP_PROTO(struct inode *inode, int drop),
137
138 TP_ARGS(inode, drop),
139
140 TP_STRUCT__entry(
141 __field( dev_t, dev )
142 __field( ino_t, ino )
143 __field( int, drop )
144 ),
145
146 TP_fast_assign(
147 tp_assign(dev, inode->i_sb->s_dev)
148 tp_assign(ino, inode->i_ino)
149 tp_assign(drop, drop)
150 ),
151
152 TP_printk("dev %d,%d ino %lu drop %d",
153 MAJOR(__entry->dev), MINOR(__entry->dev),
154 (unsigned long) __entry->ino, __entry->drop)
155)
156
3bc29f0a 157LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty,
b87700e3
AG
158 TP_PROTO(struct inode *inode, unsigned long IP),
159
160 TP_ARGS(inode, IP),
161
162 TP_STRUCT__entry(
163 __field( dev_t, dev )
164 __field( ino_t, ino )
165 __field(unsigned long, ip )
166 ),
167
168 TP_fast_assign(
169 tp_assign(dev, inode->i_sb->s_dev)
170 tp_assign(ino, inode->i_ino)
171 tp_assign(ip, IP)
172 ),
173
174 TP_printk("dev %d,%d ino %lu caller %pF",
175 MAJOR(__entry->dev), MINOR(__entry->dev),
176 (unsigned long) __entry->ino, (void *)__entry->ip)
177)
178
3bc29f0a 179LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate,
b87700e3
AG
180 TP_PROTO(struct inode *inode, loff_t new_size),
181
182 TP_ARGS(inode, new_size),
183
184 TP_STRUCT__entry(
185 __field( dev_t, dev )
186 __field( ino_t, ino )
187 __field( loff_t, new_size )
188 ),
189
190 TP_fast_assign(
191 tp_assign(dev, inode->i_sb->s_dev)
192 tp_assign(ino, inode->i_ino)
193 tp_assign(new_size, new_size)
194 ),
195
196 TP_printk("dev %d,%d ino %lu new_size %lld",
197 MAJOR(__entry->dev), MINOR(__entry->dev),
198 (unsigned long) __entry->ino,
199 __entry->new_size)
200)
201#endif
202
3bc29f0a 203LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin,
b87700e3
AG
204
205 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
206 unsigned int flags),
207
208 TP_ARGS(inode, pos, len, flags),
209
210 TP_STRUCT__entry(
211 __field( dev_t, dev )
212 __field( ino_t, ino )
213 __field( loff_t, pos )
214 __field( unsigned int, len )
215 __field( unsigned int, flags )
216 ),
217
218 TP_fast_assign(
219 tp_assign(dev, inode->i_sb->s_dev)
220 tp_assign(ino, inode->i_ino)
221 tp_assign(pos, pos)
222 tp_assign(len, len)
223 tp_assign(flags, flags)
224 ),
225
226 TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u",
227 MAJOR(__entry->dev), MINOR(__entry->dev),
228 (unsigned long) __entry->ino,
229 __entry->pos, __entry->len, __entry->flags)
230)
231
3bc29f0a 232LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin,
b87700e3
AG
233
234 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
235 unsigned int flags),
236
237 TP_ARGS(inode, pos, len, flags)
238)
239
3bc29f0a 240LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_da_write_begin,
b87700e3
AG
241
242 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
243 unsigned int flags),
244
245 TP_ARGS(inode, pos, len, flags)
246)
247
3bc29f0a 248LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end,
b87700e3
AG
249 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
250 unsigned int copied),
251
252 TP_ARGS(inode, pos, len, copied),
253
254 TP_STRUCT__entry(
255 __field( dev_t, dev )
256 __field( ino_t, ino )
257 __field( loff_t, pos )
258 __field( unsigned int, len )
259 __field( unsigned int, copied )
260 ),
261
262 TP_fast_assign(
263 tp_assign(dev, inode->i_sb->s_dev)
264 tp_assign(ino, inode->i_ino)
265 tp_assign(pos, pos)
266 tp_assign(len, len)
267 tp_assign(copied, copied)
268 ),
269
270 TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u",
271 MAJOR(__entry->dev), MINOR(__entry->dev),
272 (unsigned long) __entry->ino,
273 __entry->pos, __entry->len, __entry->copied)
274)
275
3bc29f0a 276LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_ordered_write_end,
b87700e3
AG
277
278 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
279 unsigned int copied),
280
281 TP_ARGS(inode, pos, len, copied)
282)
283
3bc29f0a 284LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_writeback_write_end,
b87700e3
AG
285
286 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
287 unsigned int copied),
288
289 TP_ARGS(inode, pos, len, copied)
290)
291
3bc29f0a 292LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_journalled_write_end,
b87700e3
AG
293
294 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
295 unsigned int copied),
296
297 TP_ARGS(inode, pos, len, copied)
298)
299
3bc29f0a 300LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_da_write_end,
b87700e3
AG
301
302 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
303 unsigned int copied),
304
305 TP_ARGS(inode, pos, len, copied)
306)
307
c6403de3 308#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40))
3bc29f0a 309LTTNG_TRACEPOINT_EVENT(ext4_writepage,
b87700e3
AG
310 TP_PROTO(struct inode *inode, struct page *page),
311
312 TP_ARGS(inode, page),
313
314 TP_STRUCT__entry(
315 __field( dev_t, dev )
316 __field( ino_t, ino )
317 __field( pgoff_t, index )
318
319 ),
320
321 TP_fast_assign(
322 tp_assign(dev, inode->i_sb->s_dev)
323 tp_assign(ino, inode->i_ino)
324 tp_assign(index, page->index)
325 ),
326
327 TP_printk("dev %d,%d ino %lu page_index %lu",
328 MAJOR(__entry->dev), MINOR(__entry->dev),
329 (unsigned long) __entry->ino, __entry->index)
330)
331#endif
332
3bc29f0a 333LTTNG_TRACEPOINT_EVENT(ext4_da_writepages,
b87700e3
AG
334 TP_PROTO(struct inode *inode, struct writeback_control *wbc),
335
336 TP_ARGS(inode, wbc),
337
338 TP_STRUCT__entry(
339 __field( dev_t, dev )
340 __field( ino_t, ino )
341 __field( long, nr_to_write )
342 __field( long, pages_skipped )
343 __field( loff_t, range_start )
344 __field( loff_t, range_end )
345 __field( pgoff_t, writeback_index )
346#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
347 __field( int, sync_mode )
348#endif
349#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
350 __field( char, nonblocking )
351#endif
352 __field( char, for_kupdate )
353#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
354 __field( char, for_reclaim )
355#endif
356 __field( char, range_cyclic )
357 ),
358
359 TP_fast_assign(
360 tp_assign(dev, inode->i_sb->s_dev)
361 tp_assign(ino, inode->i_ino)
362 tp_assign(nr_to_write, wbc->nr_to_write)
363 tp_assign(pages_skipped, wbc->pages_skipped)
364 tp_assign(range_start, wbc->range_start)
365 tp_assign(range_end, wbc->range_end)
366 tp_assign(writeback_index, inode->i_mapping->writeback_index)
367#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
368 tp_assign(sync_mode, wbc->sync_mode)
369#endif
370#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
371 tp_assign(nonblocking, wbc->nonblocking)
372#endif
373 tp_assign(for_kupdate, wbc->for_kupdate)
374#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
375 tp_assign(for_reclaim, wbc->for_reclaim)
376#endif
377 tp_assign(range_cyclic, wbc->range_cyclic)
378 ),
379
380#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
381 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
382 "range_start %lld range_end %lld sync_mode %d "
383 "for_kupdate %d range_cyclic %d writeback_index %lu",
384#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
385 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
386 "range_start %llu range_end %llu "
387 "for_kupdate %d for_reclaim %d "
388 "range_cyclic %d writeback_index %lu",
389#else
390 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
391 "range_start %llu range_end %llu "
392 "nonblocking %d for_kupdate %d for_reclaim %d "
393 "range_cyclic %d writeback_index %lu",
394#endif
395 MAJOR(__entry->dev), MINOR(__entry->dev),
396 (unsigned long) __entry->ino, __entry->nr_to_write,
397 __entry->pages_skipped, __entry->range_start,
398#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
399 __entry->range_end, __entry->sync_mode,
400 __entry->for_kupdate, __entry->range_cyclic,
401#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
402 __entry->range_end,
403 __entry->for_kupdate, __entry->for_reclaim,
404 __entry->range_cyclic,
405#else
406 __entry->range_end, __entry->nonblocking,
407 __entry->for_kupdate, __entry->for_reclaim,
408 __entry->range_cyclic,
409#endif
410 (unsigned long) __entry->writeback_index)
411)
412
00be8842
MD
413#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
414
3bc29f0a 415LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
00be8842
MD
416 TP_PROTO(struct inode *inode, pgoff_t first_page,
417 struct writeback_control *wbc),
418
419 TP_ARGS(inode, first_page, wbc),
420
421 TP_STRUCT__entry(
422 __field( dev_t, dev )
423 __field( ino_t, ino )
424 __field( pgoff_t, first_page )
425 __field( long, nr_to_write )
426 __field( int, sync_mode )
427 ),
428
429 TP_fast_assign(
430 tp_assign(dev, inode->i_sb->s_dev)
431 tp_assign(ino, inode->i_ino)
432 tp_assign(first_page, first_page)
433 tp_assign(nr_to_write, wbc->nr_to_write)
434 tp_assign(sync_mode, wbc->sync_mode)
435 ),
436
437 TP_printk("dev %d,%d ino %lu first_page %lu nr_to_write %ld "
438 "sync_mode %d",
439 MAJOR(__entry->dev), MINOR(__entry->dev),
440 (unsigned long) __entry->ino, __entry->first_page,
441 __entry->nr_to_write, __entry->sync_mode)
442)
443
444#else
445
3bc29f0a 446LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
b87700e3
AG
447 TP_PROTO(struct inode *inode, struct mpage_da_data *mpd),
448
449 TP_ARGS(inode, mpd),
450
451 TP_STRUCT__entry(
452 __field( dev_t, dev )
453 __field( ino_t, ino )
454 __field( __u64, b_blocknr )
455 __field( __u32, b_size )
456 __field( __u32, b_state )
457 __field( unsigned long, first_page )
458 __field( int, io_done )
459 __field( int, pages_written )
460#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
461 __field( int, sync_mode )
462#endif
463 ),
464
465 TP_fast_assign(
466 tp_assign(dev, inode->i_sb->s_dev)
467 tp_assign(ino, inode->i_ino)
468 tp_assign(b_blocknr, mpd->b_blocknr)
469 tp_assign(b_size, mpd->b_size)
470 tp_assign(b_state, mpd->b_state)
471 tp_assign(first_page, mpd->first_page)
472 tp_assign(io_done, mpd->io_done)
473 tp_assign(pages_written, mpd->pages_written)
474#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
475 tp_assign(sync_mode, mpd->wbc->sync_mode)
476#endif
477 ),
478
479#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
480 TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
481 "first_page %lu io_done %d pages_written %d sync_mode %d",
482#else
483 TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
484 "first_page %lu io_done %d pages_written %d",
485#endif
486 MAJOR(__entry->dev), MINOR(__entry->dev),
487 (unsigned long) __entry->ino,
488 __entry->b_blocknr, __entry->b_size,
489 __entry->b_state, __entry->first_page,
490#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
491 __entry->io_done, __entry->pages_written,
492 __entry->sync_mode
493#else
494 __entry->io_done, __entry->pages_written
495#endif
496 )
497)
498
00be8842
MD
499#endif
500
c1b29b59
MD
501#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
502
3bc29f0a 503LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent,
c1b29b59
MD
504 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map),
505
506 TP_ARGS(inode, map),
507
508 TP_STRUCT__entry(
509 __field( dev_t, dev )
510 __field( ino_t, ino )
511 __field( __u64, lblk )
512 __field( __u32, len )
513 __field( __u32, flags )
514 ),
515
516 TP_fast_assign(
517 tp_assign(dev, inode->i_sb->s_dev)
518 tp_assign(ino, inode->i_ino)
519 tp_assign(lblk, map->m_lblk)
520 tp_assign(len, map->m_len)
521 tp_assign(flags, map->m_flags)
522 ),
523
524 TP_printk("dev %d,%d ino %lu lblk %llu len %u flags %s",
525 MAJOR(__entry->dev), MINOR(__entry->dev),
526 (unsigned long) __entry->ino, __entry->lblk, __entry->len,
527 show_mflags(__entry->flags))
528)
529
530#endif
531
3bc29f0a 532LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result,
b87700e3
AG
533 TP_PROTO(struct inode *inode, struct writeback_control *wbc,
534 int ret, int pages_written),
535
536 TP_ARGS(inode, wbc, ret, pages_written),
537
538 TP_STRUCT__entry(
539 __field( dev_t, dev )
540 __field( ino_t, ino )
541 __field( int, ret )
542 __field( int, pages_written )
543 __field( long, pages_skipped )
544 __field( pgoff_t, writeback_index )
545#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
546 __field( int, sync_mode )
547#endif
548#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
549 __field( char, encountered_congestion )
550#endif
551#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
552 __field( char, more_io )
553#endif
554#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
555 __field( char, no_nrwrite_index_update )
556#endif
557 ),
558
559 TP_fast_assign(
560 tp_assign(dev, inode->i_sb->s_dev)
561 tp_assign(ino, inode->i_ino)
562 tp_assign(ret, ret)
563 tp_assign(pages_written, pages_written)
564 tp_assign(pages_skipped, wbc->pages_skipped)
565 tp_assign(writeback_index, inode->i_mapping->writeback_index)
566#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
567 tp_assign(sync_mode, wbc->sync_mode)
568#endif
569#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
570 tp_assign(encountered_congestion, wbc->encountered_congestion)
571#endif
572#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
573 tp_assign(more_io, wbc->more_io)
574#endif
575#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
576 tp_assign(no_nrwrite_index_update, wbc->no_nrwrite_index_update)
577#endif
578 ),
579
580#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
581 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
582 "sync_mode %d writeback_index %lu",
583 MAJOR(__entry->dev), MINOR(__entry->dev),
584 (unsigned long) __entry->ino, __entry->ret,
585 __entry->pages_written, __entry->pages_skipped,
586 __entry->sync_mode,
587 (unsigned long) __entry->writeback_index)
588#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
589 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
590 " more_io %d sync_mode %d writeback_index %lu",
591 MAJOR(__entry->dev), MINOR(__entry->dev),
592 (unsigned long) __entry->ino, __entry->ret,
593 __entry->pages_written, __entry->pages_skipped,
594 __entry->more_io, __entry->sync_mode,
595 (unsigned long) __entry->writeback_index)
596#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
597 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
598 " more_io %d writeback_index %lu",
599 MAJOR(__entry->dev), MINOR(__entry->dev),
600 (unsigned long) __entry->ino, __entry->ret,
601 __entry->pages_written, __entry->pages_skipped,
602 __entry->more_io,
603 (unsigned long) __entry->writeback_index)
604#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
605 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
606 " more_io %d no_nrwrite_index_update %d writeback_index %lu",
607 MAJOR(__entry->dev), MINOR(__entry->dev),
608 (unsigned long) __entry->ino, __entry->ret,
609 __entry->pages_written, __entry->pages_skipped,
610 __entry->more_io, __entry->no_nrwrite_index_update,
611 (unsigned long) __entry->writeback_index)
612#else
613 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
614 " congestion %d"
615 " more_io %d no_nrwrite_index_update %d writeback_index %lu",
616 MAJOR(__entry->dev), MINOR(__entry->dev),
617 (unsigned long) __entry->ino, __entry->ret,
618 __entry->pages_written, __entry->pages_skipped,
619 __entry->encountered_congestion,
620 __entry->more_io, __entry->no_nrwrite_index_update,
621 (unsigned long) __entry->writeback_index)
622#endif
623)
624
625#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
3bc29f0a 626LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op,
b87700e3
AG
627 TP_PROTO(struct page *page),
628
629 TP_ARGS(page),
630
631 TP_STRUCT__entry(
632 __field( dev_t, dev )
633 __field( ino_t, ino )
634 __field( pgoff_t, index )
635
636 ),
637
638 TP_fast_assign(
639 tp_assign(dev, page->mapping->host->i_sb->s_dev)
640 tp_assign(ino, page->mapping->host->i_ino)
641 tp_assign(index, page->index)
642 ),
643
644 TP_printk("dev %d,%d ino %lu page_index %lu",
645 MAJOR(__entry->dev), MINOR(__entry->dev),
646 (unsigned long) __entry->ino,
647 (unsigned long) __entry->index)
648)
649
c6403de3 650#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
3bc29f0a 651LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_writepage,
b87700e3
AG
652
653 TP_PROTO(struct page *page),
654
655 TP_ARGS(page)
656)
657#endif
658
3bc29f0a 659LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_readpage,
b87700e3
AG
660
661 TP_PROTO(struct page *page),
662
663 TP_ARGS(page)
664)
665
3bc29f0a 666LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_releasepage,
b87700e3
AG
667
668 TP_PROTO(struct page *page),
669
670 TP_ARGS(page)
671)
672
00be8842
MD
673#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
674
3bc29f0a 675LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op,
00be8842
MD
676 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
677
678 TP_ARGS(page, offset, length),
679
680 TP_STRUCT__entry(
681 __field( dev_t, dev )
682 __field( ino_t, ino )
683 __field( pgoff_t, index )
684 __field( unsigned int, offset )
685 __field( unsigned int, length )
686 ),
687
688 TP_fast_assign(
689 tp_assign(dev, page->mapping->host->i_sb->s_dev)
690 tp_assign(ino, page->mapping->host->i_ino)
691 tp_assign(index, page->index)
692 tp_assign(offset, offset)
693 tp_assign(length, length)
694 ),
695
696 TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u",
697 MAJOR(__entry->dev), MINOR(__entry->dev),
698 (unsigned long) __entry->ino,
699 (unsigned long) __entry->index,
700 __entry->offset, __entry->length)
701)
702
3bc29f0a 703LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_invalidatepage,
00be8842
MD
704 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
705
706 TP_ARGS(page, offset, length)
707)
708
3bc29f0a 709LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_journalled_invalidatepage,
00be8842
MD
710 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
711
712 TP_ARGS(page, offset, length)
713)
714
715#else
716
3bc29f0a 717LTTNG_TRACEPOINT_EVENT(ext4_invalidatepage,
b87700e3
AG
718 TP_PROTO(struct page *page, unsigned long offset),
719
720 TP_ARGS(page, offset),
721
722 TP_STRUCT__entry(
723 __field( dev_t, dev )
724 __field( ino_t, ino )
725 __field( pgoff_t, index )
726 __field( unsigned long, offset )
727
728 ),
729
730 TP_fast_assign(
731 tp_assign(dev, page->mapping->host->i_sb->s_dev)
732 tp_assign(ino, page->mapping->host->i_ino)
733 tp_assign(index, page->index)
734 tp_assign(offset, offset)
735 ),
736
737 TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
738 MAJOR(__entry->dev), MINOR(__entry->dev),
739 (unsigned long) __entry->ino,
740 (unsigned long) __entry->index, __entry->offset)
741)
00be8842
MD
742
743#endif
744
b87700e3
AG
745#endif
746
3bc29f0a 747LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks,
b87700e3
AG
748 TP_PROTO(struct super_block *sb, unsigned long long blk,
749 unsigned long long count),
750
751 TP_ARGS(sb, blk, count),
752
753 TP_STRUCT__entry(
754 __field( dev_t, dev )
755 __field( __u64, blk )
756 __field( __u64, count )
757
758 ),
759
760 TP_fast_assign(
761 tp_assign(dev, sb->s_dev)
762 tp_assign(blk, blk)
763 tp_assign(count, count)
764 ),
765
766 TP_printk("dev %d,%d blk %llu count %llu",
767 MAJOR(__entry->dev), MINOR(__entry->dev),
768 __entry->blk, __entry->count)
769)
770
3bc29f0a 771LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa,
b87700e3
AG
772 TP_PROTO(struct ext4_allocation_context *ac,
773 struct ext4_prealloc_space *pa),
774
775 TP_ARGS(ac, pa),
776
777 TP_STRUCT__entry(
778 __field( dev_t, dev )
779 __field( ino_t, ino )
780 __field( __u64, pa_pstart )
781 __field( __u64, pa_lstart )
782 __field( __u32, pa_len )
783
784 ),
785
786 TP_fast_assign(
787 tp_assign(dev, ac->ac_sb->s_dev)
788 tp_assign(ino, ac->ac_inode->i_ino)
789 tp_assign(pa_pstart, pa->pa_pstart)
790 tp_assign(pa_lstart, pa->pa_lstart)
791 tp_assign(pa_len, pa->pa_len)
792 ),
793
794 TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu",
795 MAJOR(__entry->dev), MINOR(__entry->dev),
796 (unsigned long) __entry->ino,
797 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart)
798)
799
3bc29f0a 800LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_inode_pa,
b87700e3
AG
801
802 TP_PROTO(struct ext4_allocation_context *ac,
803 struct ext4_prealloc_space *pa),
804
805 TP_ARGS(ac, pa)
806)
807
3bc29f0a 808LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_group_pa,
b87700e3
AG
809
810 TP_PROTO(struct ext4_allocation_context *ac,
811 struct ext4_prealloc_space *pa),
812
813 TP_ARGS(ac, pa)
814)
815
3bc29f0a 816LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa,
b87700e3 817 TP_PROTO(
c6403de3 818#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40))
b87700e3
AG
819#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
820 struct super_block *sb,
821 struct inode *inode,
822#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
823 struct super_block *sb,
824 struct ext4_allocation_context *ac,
825#else
826 struct ext4_allocation_context *ac,
827#endif
828#endif
829 struct ext4_prealloc_space *pa,
830 unsigned long long block, unsigned int count),
831
c6403de3 832#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
b87700e3
AG
833 TP_ARGS(pa, block, count),
834#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
835 TP_ARGS(sb, inode, pa, block, count),
836#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
837 TP_ARGS(sb, ac, pa, block, count),
838#else
839 TP_ARGS(ac, pa, block, count),
840#endif
841
842 TP_STRUCT__entry(
843 __field( dev_t, dev )
844 __field( ino_t, ino )
845 __field( __u64, block )
846 __field( __u32, count )
847
848 ),
849
850 TP_fast_assign(
c6403de3 851#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
b87700e3
AG
852 tp_assign(dev, pa->pa_inode->i_sb->s_dev)
853 tp_assign(ino, pa->pa_inode->i_ino)
854#else
855#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
856 tp_assign(dev, sb->s_dev)
857#else
858 tp_assign(dev, ac->ac_sb->s_dev)
859#endif
860#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
861 tp_assign(ino, inode->i_ino)
862#else
863 tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
864#endif
865#endif
866 tp_assign(block, block)
867 tp_assign(count, count)
868 ),
869
870 TP_printk("dev %d,%d ino %lu block %llu count %u",
871 MAJOR(__entry->dev), MINOR(__entry->dev),
872 (unsigned long) __entry->ino,
873 __entry->block, __entry->count)
874)
875
3bc29f0a 876LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
b87700e3 877
c6403de3 878#if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0))
b87700e3
AG
879 TP_PROTO(struct ext4_prealloc_space *pa),
880
881 TP_ARGS(pa),
882#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
883 TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa),
884
885 TP_ARGS(sb, pa),
886#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
887 TP_PROTO(struct super_block *sb,
888 struct ext4_allocation_context *ac,
889 struct ext4_prealloc_space *pa),
890
891 TP_ARGS(sb, ac, pa),
892#else
893 TP_PROTO(struct ext4_allocation_context *ac,
894 struct ext4_prealloc_space *pa),
895
896 TP_ARGS(ac, pa),
897#endif
898
899 TP_STRUCT__entry(
900 __field( dev_t, dev )
901#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
902 __field( ino_t, ino )
903#endif
904 __field( __u64, pa_pstart )
905 __field( __u32, pa_len )
906
907 ),
908
909 TP_fast_assign(
c6403de3 910#if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0))
b87700e3
AG
911 tp_assign(dev, pa->pa_inode->i_sb->s_dev)
912#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
913 tp_assign(dev, sb->s_dev)
914#else
915 tp_assign(dev, ac->ac_sb->s_dev)
916#endif
917#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
918 tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
919#endif
920 tp_assign(pa_pstart, pa->pa_pstart)
921 tp_assign(pa_len, pa->pa_len)
922 ),
923
924 TP_printk("dev %d,%d pstart %llu len %u",
925 MAJOR(__entry->dev), MINOR(__entry->dev),
926 __entry->pa_pstart, __entry->pa_len)
927)
928
3bc29f0a 929LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
b87700e3
AG
930 TP_PROTO(struct inode *inode),
931
932 TP_ARGS(inode),
933
934 TP_STRUCT__entry(
935 __field( dev_t, dev )
936 __field( ino_t, ino )
937
938 ),
939
940 TP_fast_assign(
941 tp_assign(dev, inode->i_sb->s_dev)
942 tp_assign(ino, inode->i_ino)
943 ),
944
945 TP_printk("dev %d,%d ino %lu",
946 MAJOR(__entry->dev), MINOR(__entry->dev),
947 (unsigned long) __entry->ino)
948)
949
3bc29f0a 950LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
b87700e3
AG
951 TP_PROTO(struct super_block *sb, int needed),
952
953 TP_ARGS(sb, needed),
954
955 TP_STRUCT__entry(
956 __field( dev_t, dev )
957 __field( int, needed )
958
959 ),
960
961 TP_fast_assign(
962 tp_assign(dev, sb->s_dev)
963 tp_assign(needed, needed)
964 ),
965
966 TP_printk("dev %d,%d needed %d",
967 MAJOR(__entry->dev), MINOR(__entry->dev),
968 __entry->needed)
969)
970
3bc29f0a 971LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
b87700e3
AG
972 TP_PROTO(struct ext4_allocation_request *ar),
973
974 TP_ARGS(ar),
975
976 TP_STRUCT__entry(
977 __field( dev_t, dev )
978 __field( ino_t, ino )
979 __field( unsigned int, len )
980 __field( __u32, logical )
981 __field( __u32, lleft )
982 __field( __u32, lright )
983 __field( __u64, goal )
984 __field( __u64, pleft )
985 __field( __u64, pright )
986 __field( unsigned int, flags )
987 ),
988
989 TP_fast_assign(
990 tp_assign(dev, ar->inode->i_sb->s_dev)
991 tp_assign(ino, ar->inode->i_ino)
992 tp_assign(len, ar->len)
993 tp_assign(logical, ar->logical)
994 tp_assign(goal, ar->goal)
995 tp_assign(lleft, ar->lleft)
996 tp_assign(lright, ar->lright)
997 tp_assign(pleft, ar->pleft)
998 tp_assign(pright, ar->pright)
999 tp_assign(flags, ar->flags)
1000 ),
1001
1002 TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu "
1003 "lleft %u lright %u pleft %llu pright %llu ",
1004 MAJOR(__entry->dev), MINOR(__entry->dev),
1005 (unsigned long) __entry->ino, __entry->flags,
1006 __entry->len, __entry->logical, __entry->goal,
1007 __entry->lleft, __entry->lright, __entry->pleft,
1008 __entry->pright)
1009)
1010
3bc29f0a 1011LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
b87700e3
AG
1012 TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block),
1013
1014 TP_ARGS(ar, block),
1015
1016 TP_STRUCT__entry(
1017 __field( dev_t, dev )
1018 __field( ino_t, ino )
1019 __field( __u64, block )
1020 __field( unsigned int, len )
1021 __field( __u32, logical )
1022 __field( __u32, lleft )
1023 __field( __u32, lright )
1024 __field( __u64, goal )
1025 __field( __u64, pleft )
1026 __field( __u64, pright )
1027 __field( unsigned int, flags )
1028 ),
1029
1030 TP_fast_assign(
1031 tp_assign(dev, ar->inode->i_sb->s_dev)
1032 tp_assign(ino, ar->inode->i_ino)
1033 tp_assign(block, block)
1034 tp_assign(len, ar->len)
1035 tp_assign(logical, ar->logical)
1036 tp_assign(goal, ar->goal)
1037 tp_assign(lleft, ar->lleft)
1038 tp_assign(lright, ar->lright)
1039 tp_assign(pleft, ar->pleft)
1040 tp_assign(pright, ar->pright)
1041 tp_assign(flags, ar->flags)
1042 ),
1043
1044 TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u "
1045 "goal %llu lleft %u lright %u pleft %llu pright %llu",
1046 MAJOR(__entry->dev), MINOR(__entry->dev),
1047 (unsigned long) __entry->ino, __entry->flags,
1048 __entry->len, __entry->block, __entry->logical,
1049 __entry->goal, __entry->lleft, __entry->lright,
1050 __entry->pleft, __entry->pright)
1051)
1052
3bc29f0a 1053LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
b87700e3
AG
1054#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1055 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
1056 int flags),
1057
1058 TP_ARGS(inode, block, count, flags),
1059#else
1060 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
1061 int metadata),
1062
1063 TP_ARGS(inode, block, count, metadata),
1064#endif
1065
1066 TP_STRUCT__entry(
1067 __field( dev_t, dev )
1068 __field( ino_t, ino )
1069 __field( __u64, block )
1070 __field( unsigned long, count )
1071#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1072 __field( int, flags )
1073 __field( TP_MODE_T, mode )
1074#else
1075 __field( int, metadata )
1076#endif
1077 ),
1078
1079 TP_fast_assign(
1080 tp_assign(dev, inode->i_sb->s_dev)
1081 tp_assign(ino, inode->i_ino)
1082 tp_assign(block, block)
1083 tp_assign(count, count)
1084#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1085 tp_assign(flags, flags)
1086 tp_assign(mode, inode->i_mode)
1087#else
1088 tp_assign(metadata, metadata)
1089#endif
1090 ),
1091
1092#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1093 TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d",
1094#else
1095 TP_printk("dev %d,%d ino %lu block %llu count %lu metadata %d",
1096#endif
1097 MAJOR(__entry->dev), MINOR(__entry->dev),
1098 (unsigned long) __entry->ino,
1099#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1100 __entry->mode, __entry->block, __entry->count,
1101 __entry->flags)
1102#else
1103 __entry->block, __entry->count, __entry->metadata)
1104#endif
1105)
1106
1107#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
3bc29f0a 1108LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter,
b87700e3 1109#else
3bc29f0a 1110LTTNG_TRACEPOINT_EVENT(ext4_sync_file,
b87700e3
AG
1111#endif
1112#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
1113 TP_PROTO(struct file *file, int datasync),
1114
1115 TP_ARGS(file, datasync),
1116#else
1117 TP_PROTO(struct file *file, struct dentry *dentry, int datasync),
1118
1119 TP_ARGS(file, dentry, datasync),
1120#endif
1121
1122 TP_STRUCT__entry(
1123 __field( dev_t, dev )
1124 __field( ino_t, ino )
1125 __field( ino_t, parent )
1126 __field( int, datasync )
1127 ),
1128
1129 TP_fast_assign(
1130#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
1131 tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev)
1132 tp_assign(ino, file->f_path.dentry->d_inode->i_ino)
1133 tp_assign(datasync, datasync)
1134 tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino)
1135#else
1136 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1137 tp_assign(ino, dentry->d_inode->i_ino)
1138 tp_assign(datasync, datasync)
1139 tp_assign(parent, dentry->d_parent->d_inode->i_ino)
1140#endif
1141 ),
1142
1143 TP_printk("dev %d,%d ino %lu parent %lu datasync %d ",
1144 MAJOR(__entry->dev), MINOR(__entry->dev),
1145 (unsigned long) __entry->ino,
1146 (unsigned long) __entry->parent, __entry->datasync)
1147)
1148
1149#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
3bc29f0a 1150LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit,
b87700e3
AG
1151 TP_PROTO(struct inode *inode, int ret),
1152
1153 TP_ARGS(inode, ret),
1154
1155 TP_STRUCT__entry(
1156 __field( dev_t, dev )
1157 __field( ino_t, ino )
1158 __field( int, ret )
1159 ),
1160
1161 TP_fast_assign(
1162 tp_assign(dev, inode->i_sb->s_dev)
1163 tp_assign(ino, inode->i_ino)
1164 tp_assign(ret, ret)
1165 ),
1166
1167 TP_printk("dev %d,%d ino %lu ret %d",
1168 MAJOR(__entry->dev), MINOR(__entry->dev),
1169 (unsigned long) __entry->ino,
1170 __entry->ret)
1171)
1172#endif
1173
3bc29f0a 1174LTTNG_TRACEPOINT_EVENT(ext4_sync_fs,
b87700e3
AG
1175 TP_PROTO(struct super_block *sb, int wait),
1176
1177 TP_ARGS(sb, wait),
1178
1179 TP_STRUCT__entry(
1180 __field( dev_t, dev )
1181 __field( int, wait )
1182
1183 ),
1184
1185 TP_fast_assign(
1186 tp_assign(dev, sb->s_dev)
1187 tp_assign(wait, wait)
1188 ),
1189
1190 TP_printk("dev %d,%d wait %d",
1191 MAJOR(__entry->dev), MINOR(__entry->dev),
1192 __entry->wait)
1193)
1194
3bc29f0a 1195LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
b87700e3
AG
1196 TP_PROTO(struct inode *inode),
1197
1198 TP_ARGS(inode),
1199
1200 TP_STRUCT__entry(
1201 __field( dev_t, dev )
1202 __field( ino_t, ino )
1203 __field( unsigned int, data_blocks )
1204 __field( unsigned int, meta_blocks )
1205 ),
1206
1207 TP_fast_assign(
1208 tp_assign(dev, inode->i_sb->s_dev)
1209 tp_assign(ino, inode->i_ino)
1210 tp_assign(data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
1211 tp_assign(meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
1212 ),
1213
1214 TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u",
1215 MAJOR(__entry->dev), MINOR(__entry->dev),
1216 (unsigned long) __entry->ino,
1217 __entry->data_blocks, __entry->meta_blocks)
1218)
1219
3bc29f0a 1220LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
b87700e3
AG
1221 TP_PROTO(struct ext4_allocation_context *ac),
1222
1223 TP_ARGS(ac),
1224
1225 TP_STRUCT__entry(
1226 __field( dev_t, dev )
1227 __field( ino_t, ino )
1228 __field( __u32, orig_logical )
1229 __field( int, orig_start )
1230 __field( __u32, orig_group )
1231 __field( int, orig_len )
1232 __field( __u32, goal_logical )
1233 __field( int, goal_start )
1234 __field( __u32, goal_group )
1235 __field( int, goal_len )
1236 __field( __u32, result_logical )
1237 __field( int, result_start )
1238 __field( __u32, result_group )
1239 __field( int, result_len )
1240 __field( __u16, found )
1241 __field( __u16, groups )
1242 __field( __u16, buddy )
1243 __field( __u16, flags )
1244 __field( __u16, tail )
1245 __field( __u8, cr )
1246 ),
1247
1248 TP_fast_assign(
1249 tp_assign(dev, ac->ac_inode->i_sb->s_dev)
1250 tp_assign(ino, ac->ac_inode->i_ino)
1251 tp_assign(orig_logical, ac->ac_o_ex.fe_logical)
1252 tp_assign(orig_start, ac->ac_o_ex.fe_start)
1253 tp_assign(orig_group, ac->ac_o_ex.fe_group)
1254 tp_assign(orig_len, ac->ac_o_ex.fe_len)
1255 tp_assign(goal_logical, ac->ac_g_ex.fe_logical)
1256 tp_assign(goal_start, ac->ac_g_ex.fe_start)
1257 tp_assign(goal_group, ac->ac_g_ex.fe_group)
1258 tp_assign(goal_len, ac->ac_g_ex.fe_len)
1259 tp_assign(result_logical, ac->ac_f_ex.fe_logical)
1260 tp_assign(result_start, ac->ac_f_ex.fe_start)
1261 tp_assign(result_group, ac->ac_f_ex.fe_group)
1262 tp_assign(result_len, ac->ac_f_ex.fe_len)
1263 tp_assign(found, ac->ac_found)
1264 tp_assign(flags, ac->ac_flags)
1265 tp_assign(groups, ac->ac_groups_scanned)
1266 tp_assign(buddy, ac->ac_buddy)
1267 tp_assign(tail, ac->ac_tail)
1268 tp_assign(cr, ac->ac_criteria)
1269 ),
1270
1271 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u "
1272 "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x "
1273 "tail %u broken %u",
1274 MAJOR(__entry->dev), MINOR(__entry->dev),
1275 (unsigned long) __entry->ino,
1276 __entry->orig_group, __entry->orig_start,
1277 __entry->orig_len, __entry->orig_logical,
1278 __entry->goal_group, __entry->goal_start,
1279 __entry->goal_len, __entry->goal_logical,
1280 __entry->result_group, __entry->result_start,
1281 __entry->result_len, __entry->result_logical,
1282 __entry->found, __entry->groups, __entry->cr,
1283 __entry->flags, __entry->tail,
1284 __entry->buddy ? 1 << __entry->buddy : 0)
1285)
1286
3bc29f0a 1287LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
b87700e3
AG
1288 TP_PROTO(struct ext4_allocation_context *ac),
1289
1290 TP_ARGS(ac),
1291
1292 TP_STRUCT__entry(
1293 __field( dev_t, dev )
1294 __field( ino_t, ino )
1295 __field( __u32, orig_logical )
1296 __field( int, orig_start )
1297 __field( __u32, orig_group )
1298 __field( int, orig_len )
1299 __field( __u32, result_logical )
1300 __field( int, result_start )
1301 __field( __u32, result_group )
1302 __field( int, result_len )
1303 ),
1304
1305 TP_fast_assign(
1306 tp_assign(dev, ac->ac_inode->i_sb->s_dev)
1307 tp_assign(ino, ac->ac_inode->i_ino)
1308 tp_assign(orig_logical, ac->ac_o_ex.fe_logical)
1309 tp_assign(orig_start, ac->ac_o_ex.fe_start)
1310 tp_assign(orig_group, ac->ac_o_ex.fe_group)
1311 tp_assign(orig_len, ac->ac_o_ex.fe_len)
1312 tp_assign(result_logical, ac->ac_b_ex.fe_logical)
1313 tp_assign(result_start, ac->ac_b_ex.fe_start)
1314 tp_assign(result_group, ac->ac_b_ex.fe_group)
1315 tp_assign(result_len, ac->ac_b_ex.fe_len)
1316 ),
1317
1318 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u",
1319 MAJOR(__entry->dev), MINOR(__entry->dev),
1320 (unsigned long) __entry->ino,
1321 __entry->orig_group, __entry->orig_start,
1322 __entry->orig_len, __entry->orig_logical,
1323 __entry->result_group, __entry->result_start,
1324 __entry->result_len, __entry->result_logical)
1325)
1326
3bc29f0a 1327LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
b87700e3
AG
1328#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1329 TP_PROTO(struct super_block *sb,
1330 struct inode *inode,
1331 ext4_group_t group,
1332 ext4_grpblk_t start,
1333 ext4_grpblk_t len),
1334
1335 TP_ARGS(sb, inode, group, start, len),
1336#else
1337 TP_PROTO(struct ext4_allocation_context *ac),
1338
1339 TP_ARGS(ac),
1340#endif
1341
1342 TP_STRUCT__entry(
1343 __field( dev_t, dev )
1344 __field( ino_t, ino )
1345#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
1346 __field( __u32, result_logical )
1347#endif
1348 __field( int, result_start )
1349 __field( __u32, result_group )
1350 __field( int, result_len )
1351 ),
1352
1353 TP_fast_assign(
1354#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1355 tp_assign(dev, sb->s_dev)
1356 tp_assign(ino, inode ? inode->i_ino : 0)
1357 tp_assign(result_start, start)
1358 tp_assign(result_group, group)
1359 tp_assign(result_len, len)
1360#else
1361 tp_assign(dev, ac->ac_sb->s_dev)
1362 tp_assign(ino, ac->ac_inode ? ac->ac_inode->i_ino : 0)
1363 tp_assign(result_logical, ac->ac_b_ex.fe_logical)
1364 tp_assign(result_start, ac->ac_b_ex.fe_start)
1365 tp_assign(result_group, ac->ac_b_ex.fe_group)
1366 tp_assign(result_len, ac->ac_b_ex.fe_len)
1367#endif
1368 ),
1369
1370#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1371 TP_printk("dev %d,%d inode %lu extent %u/%d/%d ",
1372#else
1373 TP_printk("dev %d,%d inode %lu extent %u/%d/%u@%u ",
1374#endif
1375 MAJOR(__entry->dev), MINOR(__entry->dev),
1376 (unsigned long) __entry->ino,
1377 __entry->result_group, __entry->result_start,
1378#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1379 __entry->result_len
1380#else
1381 __entry->result_len, __entry->result_logical
1382#endif
1383 )
1384)
1385
3bc29f0a 1386LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_discard,
b87700e3
AG
1387
1388#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1389 TP_PROTO(struct super_block *sb,
1390 struct inode *inode,
1391 ext4_group_t group,
1392 ext4_grpblk_t start,
1393 ext4_grpblk_t len),
1394
1395 TP_ARGS(sb, inode, group, start, len)
1396#else
1397 TP_PROTO(struct ext4_allocation_context *ac),
1398
1399 TP_ARGS(ac)
1400#endif
1401)
1402
3bc29f0a 1403LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_free,
b87700e3
AG
1404
1405#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1406 TP_PROTO(struct super_block *sb,
1407 struct inode *inode,
1408 ext4_group_t group,
1409 ext4_grpblk_t start,
1410 ext4_grpblk_t len),
1411
1412 TP_ARGS(sb, inode, group, start, len)
1413#else
1414 TP_PROTO(struct ext4_allocation_context *ac),
1415
1416 TP_ARGS(ac)
1417#endif
1418)
1419
1420#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
3bc29f0a 1421LTTNG_TRACEPOINT_EVENT(ext4_forget,
b87700e3
AG
1422 TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
1423
1424 TP_ARGS(inode, is_metadata, block),
1425
1426 TP_STRUCT__entry(
1427 __field( dev_t, dev )
1428 __field( ino_t, ino )
1429 __field( __u64, block )
1430 __field( int, is_metadata )
1431 __field( TP_MODE_T, mode )
1432 ),
1433
1434 TP_fast_assign(
1435 tp_assign(dev, inode->i_sb->s_dev)
1436 tp_assign(ino, inode->i_ino)
1437 tp_assign(block, block)
1438 tp_assign(is_metadata, is_metadata)
1439 tp_assign(mode, inode->i_mode)
1440 ),
1441
1442 TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu",
1443 MAJOR(__entry->dev), MINOR(__entry->dev),
1444 (unsigned long) __entry->ino,
1445 __entry->mode, __entry->is_metadata, __entry->block)
1446)
1447#endif
1448
1449#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
3bc29f0a 1450LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
b87700e3
AG
1451#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1452 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
1453
1454 TP_ARGS(inode, used_blocks, quota_claim),
1455#else
1456 TP_PROTO(struct inode *inode, int used_blocks),
1457
1458 TP_ARGS(inode, used_blocks),
1459#endif
1460
1461 TP_STRUCT__entry(
1462 __field( dev_t, dev )
1463 __field( ino_t, ino )
1464 __field( __u64, i_blocks )
1465 __field( int, used_blocks )
1466 __field( int, reserved_data_blocks )
1467 __field( int, reserved_meta_blocks )
1468 __field( int, allocated_meta_blocks )
1469#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1470 __field( int, quota_claim )
1471#endif
1472 __field( TP_MODE_T, mode )
1473 ),
1474
1475 TP_fast_assign(
1476 tp_assign(dev, inode->i_sb->s_dev)
1477 tp_assign(ino, inode->i_ino)
1478 tp_assign(i_blocks, inode->i_blocks)
1479 tp_assign(used_blocks, used_blocks)
1480 tp_assign(reserved_data_blocks,
1481 EXT4_I(inode)->i_reserved_data_blocks)
1482 tp_assign(reserved_meta_blocks,
1483 EXT4_I(inode)->i_reserved_meta_blocks)
1484 tp_assign(allocated_meta_blocks,
1485 EXT4_I(inode)->i_allocated_meta_blocks)
1486#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1487 tp_assign(quota_claim, quota_claim)
1488#endif
1489 tp_assign(mode, inode->i_mode)
1490 ),
1491
1492#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1493 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
1494 "reserved_data_blocks %d reserved_meta_blocks %d "
1495 "allocated_meta_blocks %d quota_claim %d",
1496 MAJOR(__entry->dev), MINOR(__entry->dev),
1497 (unsigned long) __entry->ino,
1498 __entry->mode, __entry->i_blocks,
1499 __entry->used_blocks, __entry->reserved_data_blocks,
1500 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks,
1501 __entry->quota_claim)
1502#else
1503 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
1504 "reserved_data_blocks %d reserved_meta_blocks %d "
1505 "allocated_meta_blocks %d",
1506 MAJOR(__entry->dev), MINOR(__entry->dev),
1507 (unsigned long) __entry->ino,
1508 __entry->mode, __entry->i_blocks,
1509 __entry->used_blocks, __entry->reserved_data_blocks,
1510 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
1511#endif
1512)
1513
e540f3e3
MD
1514#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
1515LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
1516 TP_PROTO(struct inode *inode),
1517
1518 TP_ARGS(inode),
1519
1520 TP_STRUCT__entry(
1521 __field( dev_t, dev )
1522 __field( ino_t, ino )
1523 __field( __u64, i_blocks )
1524 __field( int, reserved_data_blocks )
1525 __field( int, reserved_meta_blocks )
1526 __field( TP_MODE_T, mode )
1527 ),
1528
1529 TP_fast_assign(
1530 tp_assign(dev, inode->i_sb->s_dev)
1531 tp_assign(ino, inode->i_ino)
1532 tp_assign(i_blocks, inode->i_blocks)
1533 tp_assign(reserved_data_blocks,
1534 EXT4_I(inode)->i_reserved_data_blocks)
1535 tp_assign(reserved_meta_blocks,
1536 EXT4_I(inode)->i_reserved_meta_blocks)
1537 tp_assign(mode, inode->i_mode)
1538 ),
1539
1540 TP_printk()
1541)
1542#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
3bc29f0a 1543LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
b87700e3
AG
1544 TP_PROTO(struct inode *inode, int md_needed),
1545
1546 TP_ARGS(inode, md_needed),
1547
1548 TP_STRUCT__entry(
1549 __field( dev_t, dev )
1550 __field( ino_t, ino )
1551 __field( __u64, i_blocks )
1552 __field( int, md_needed )
1553 __field( int, reserved_data_blocks )
1554 __field( int, reserved_meta_blocks )
1555 __field( TP_MODE_T, mode )
1556 ),
1557
1558 TP_fast_assign(
1559 tp_assign(dev, inode->i_sb->s_dev)
1560 tp_assign(ino, inode->i_ino)
1561 tp_assign(i_blocks, inode->i_blocks)
1562 tp_assign(md_needed, md_needed)
1563 tp_assign(reserved_data_blocks,
1564 EXT4_I(inode)->i_reserved_data_blocks)
1565 tp_assign(reserved_meta_blocks,
1566 EXT4_I(inode)->i_reserved_meta_blocks)
1567 tp_assign(mode, inode->i_mode)
1568 ),
1569
1570 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d "
1571 "reserved_data_blocks %d reserved_meta_blocks %d",
1572 MAJOR(__entry->dev), MINOR(__entry->dev),
1573 (unsigned long) __entry->ino,
1574 __entry->mode, __entry->i_blocks,
1575 __entry->md_needed, __entry->reserved_data_blocks,
1576 __entry->reserved_meta_blocks)
1577)
e540f3e3 1578#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
b87700e3 1579
3bc29f0a 1580LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
b87700e3
AG
1581 TP_PROTO(struct inode *inode, int freed_blocks),
1582
1583 TP_ARGS(inode, freed_blocks),
1584
1585 TP_STRUCT__entry(
1586 __field( dev_t, dev )
1587 __field( ino_t, ino )
1588 __field( __u64, i_blocks )
1589 __field( int, freed_blocks )
1590 __field( int, reserved_data_blocks )
1591 __field( int, reserved_meta_blocks )
1592 __field( int, allocated_meta_blocks )
1593 __field( TP_MODE_T, mode )
1594 ),
1595
1596 TP_fast_assign(
1597 tp_assign(dev, inode->i_sb->s_dev)
1598 tp_assign(ino, inode->i_ino)
1599 tp_assign(i_blocks, inode->i_blocks)
1600 tp_assign(freed_blocks, freed_blocks)
1601 tp_assign(reserved_data_blocks,
1602 EXT4_I(inode)->i_reserved_data_blocks)
1603 tp_assign(reserved_meta_blocks,
1604 EXT4_I(inode)->i_reserved_meta_blocks)
1605 tp_assign(allocated_meta_blocks,
1606 EXT4_I(inode)->i_allocated_meta_blocks)
1607 tp_assign(mode, inode->i_mode)
1608 ),
1609
1610 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
1611 "reserved_data_blocks %d reserved_meta_blocks %d "
1612 "allocated_meta_blocks %d",
1613 MAJOR(__entry->dev), MINOR(__entry->dev),
1614 (unsigned long) __entry->ino,
1615 __entry->mode, __entry->i_blocks,
1616 __entry->freed_blocks, __entry->reserved_data_blocks,
1617 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
1618)
1619#endif
1620
1621#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
3bc29f0a 1622LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load,
b87700e3
AG
1623 TP_PROTO(struct super_block *sb, unsigned long group),
1624
1625 TP_ARGS(sb, group),
1626
1627 TP_STRUCT__entry(
1628 __field( dev_t, dev )
1629 __field( __u32, group )
1630
1631 ),
1632
1633 TP_fast_assign(
1634 tp_assign(dev, sb->s_dev)
1635 tp_assign(group, group)
1636 ),
1637
1638 TP_printk("dev %d,%d group %u",
1639 MAJOR(__entry->dev), MINOR(__entry->dev),
1640 __entry->group)
1641)
1642
3bc29f0a 1643LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load,
b87700e3
AG
1644
1645 TP_PROTO(struct super_block *sb, unsigned long group),
1646
1647 TP_ARGS(sb, group)
1648)
1649
3bc29f0a 1650LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
b87700e3
AG
1651
1652 TP_PROTO(struct super_block *sb, unsigned long group),
1653
1654 TP_ARGS(sb, group)
1655)
1656#endif
1657
1658#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
3bc29f0a 1659LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
b87700e3
AG
1660
1661 TP_PROTO(struct super_block *sb, unsigned long group),
1662
1663 TP_ARGS(sb, group)
1664)
1665
3bc29f0a 1666LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
b87700e3
AG
1667
1668 TP_PROTO(struct super_block *sb, unsigned long group),
1669
1670 TP_ARGS(sb, group)
1671)
1672
3bc29f0a 1673LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter,
b87700e3
AG
1674 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
1675
1676 TP_ARGS(inode, offset, len, rw),
1677
1678 TP_STRUCT__entry(
1679 __field( dev_t, dev )
1680 __field( ino_t, ino )
1681 __field( loff_t, pos )
1682 __field( unsigned long, len )
1683 __field( int, rw )
1684 ),
1685
1686 TP_fast_assign(
1687 tp_assign(dev, inode->i_sb->s_dev)
1688 tp_assign(ino, inode->i_ino)
1689 tp_assign(pos, offset)
1690 tp_assign(len, len)
1691 tp_assign(rw, rw)
1692 ),
1693
1694 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d",
1695 MAJOR(__entry->dev), MINOR(__entry->dev),
1696 (unsigned long) __entry->ino,
1697 __entry->pos, __entry->len, __entry->rw)
1698)
1699
3bc29f0a 1700LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
b87700e3
AG
1701 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
1702 int rw, int ret),
1703
1704 TP_ARGS(inode, offset, len, rw, ret),
1705
1706 TP_STRUCT__entry(
1707 __field( dev_t, dev )
1708 __field( ino_t, ino )
1709 __field( loff_t, pos )
1710 __field( unsigned long, len )
1711 __field( int, rw )
1712 __field( int, ret )
1713 ),
1714
1715 TP_fast_assign(
1716 tp_assign(dev, inode->i_sb->s_dev)
1717 tp_assign(ino, inode->i_ino)
1718 tp_assign(pos, offset)
1719 tp_assign(len, len)
1720 tp_assign(rw, rw)
1721 tp_assign(ret, ret)
1722 ),
1723
1724 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d",
1725 MAJOR(__entry->dev), MINOR(__entry->dev),
1726 (unsigned long) __entry->ino,
1727 __entry->pos, __entry->len,
1728 __entry->rw, __entry->ret)
1729)
1730
3bc29f0a 1731LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
11af8f55
MD
1732 TP_PROTO(struct inode *inode, loff_t offset,
1733 unsigned int max_blocks, int ret),
1734
1735 TP_ARGS(inode, offset, max_blocks, ret),
1736
1737 TP_STRUCT__entry(
1738 __field( dev_t, dev )
1739 __field( ino_t, ino )
1740 __field( loff_t, pos )
1741 __field( unsigned int, blocks )
1742 __field( int, ret )
1743 ),
1744
1745 TP_fast_assign(
1746 tp_assign(dev, inode->i_sb->s_dev)
1747 tp_assign(ino, inode->i_ino)
1748 tp_assign(pos, offset)
1749 tp_assign(blocks, max_blocks)
1750 tp_assign(ret, ret)
1751 ),
1752
1753 TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d",
1754 MAJOR(__entry->dev), MINOR(__entry->dev),
1755 (unsigned long) __entry->ino,
1756 __entry->pos, __entry->blocks,
1757 __entry->ret)
1758)
1759
1760#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
1761
3bc29f0a 1762LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
b87700e3
AG
1763 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1764
1765 TP_ARGS(inode, offset, len, mode),
1766
1767 TP_STRUCT__entry(
1768 __field( dev_t, dev )
1769 __field( ino_t, ino )
11af8f55
MD
1770 __field( loff_t, offset )
1771 __field( loff_t, len )
b87700e3
AG
1772 __field( int, mode )
1773 ),
1774
1775 TP_fast_assign(
1776 tp_assign(dev, inode->i_sb->s_dev)
1777 tp_assign(ino, inode->i_ino)
11af8f55 1778 tp_assign(offset, offset)
b87700e3
AG
1779 tp_assign(len, len)
1780 tp_assign(mode, mode)
1781 ),
1782
11af8f55 1783 TP_printk("dev %d,%d ino %lu offset %lld len %lld mode %s",
b87700e3 1784 MAJOR(__entry->dev), MINOR(__entry->dev),
11af8f55
MD
1785 (unsigned long) __entry->ino,
1786 __entry->offset, __entry->len,
1787 show_falloc_mode(__entry->mode))
b87700e3
AG
1788)
1789
3bc29f0a 1790LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter,
b87700e3 1791
11af8f55
MD
1792 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1793
1794 TP_ARGS(inode, offset, len, mode)
1795)
1796
3bc29f0a 1797LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_punch_hole,
11af8f55
MD
1798
1799 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1800
1801 TP_ARGS(inode, offset, len, mode)
1802)
1803
3bc29f0a 1804LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_zero_range,
11af8f55
MD
1805
1806 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1807
1808 TP_ARGS(inode, offset, len, mode)
1809)
1810
1811#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
1812
3bc29f0a 1813LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter,
11af8f55
MD
1814 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1815
1816 TP_ARGS(inode, offset, len, mode),
b87700e3
AG
1817
1818 TP_STRUCT__entry(
1819 __field( dev_t, dev )
1820 __field( ino_t, ino )
1821 __field( loff_t, pos )
11af8f55
MD
1822 __field( loff_t, len )
1823 __field( int, mode )
b87700e3
AG
1824 ),
1825
1826 TP_fast_assign(
1827 tp_assign(dev, inode->i_sb->s_dev)
1828 tp_assign(ino, inode->i_ino)
1829 tp_assign(pos, offset)
11af8f55
MD
1830 tp_assign(len, len)
1831 tp_assign(mode, mode)
b87700e3
AG
1832 ),
1833
11af8f55 1834 TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d",
b87700e3 1835 MAJOR(__entry->dev), MINOR(__entry->dev),
11af8f55
MD
1836 (unsigned long) __entry->ino, __entry->pos,
1837 __entry->len, __entry->mode)
b87700e3
AG
1838)
1839
c1b29b59
MD
1840#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1841
3bc29f0a 1842LTTNG_TRACEPOINT_EVENT(ext4_punch_hole,
c1b29b59
MD
1843 TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
1844
1845 TP_ARGS(inode, offset, len),
1846
1847 TP_STRUCT__entry(
1848 __field( dev_t, dev )
1849 __field( ino_t, ino )
1850 __field( loff_t, offset )
1851 __field( loff_t, len )
1852 ),
1853
1854 TP_fast_assign(
1855 tp_assign(dev, inode->i_sb->s_dev)
1856 tp_assign(ino, inode->i_ino)
1857 tp_assign(offset, offset)
1858 tp_assign(len, len)
1859 ),
1860
1861 TP_printk("dev %d,%d ino %lu offset %lld len %lld",
1862 MAJOR(__entry->dev), MINOR(__entry->dev),
1863 (unsigned long) __entry->ino,
1864 __entry->offset, __entry->len)
1865)
1866
11af8f55
MD
1867#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
1868
1869#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
c1b29b59 1870
3bc29f0a 1871LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
b87700e3
AG
1872 TP_PROTO(struct inode *parent, struct dentry *dentry),
1873
1874 TP_ARGS(parent, dentry),
1875
1876 TP_STRUCT__entry(
1877 __field( dev_t, dev )
1878 __field( ino_t, ino )
1879 __field( ino_t, parent )
1880 __field( loff_t, size )
1881 ),
1882
1883 TP_fast_assign(
1884 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1885 tp_assign(ino, dentry->d_inode->i_ino)
1886 tp_assign(parent, parent->i_ino)
1887 tp_assign(size, dentry->d_inode->i_size)
1888 ),
1889
1890 TP_printk("dev %d,%d ino %lu size %lld parent %lu",
1891 MAJOR(__entry->dev), MINOR(__entry->dev),
1892 (unsigned long) __entry->ino, __entry->size,
1893 (unsigned long) __entry->parent)
1894)
1895
3bc29f0a 1896LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
b87700e3
AG
1897 TP_PROTO(struct dentry *dentry, int ret),
1898
1899 TP_ARGS(dentry, ret),
1900
1901 TP_STRUCT__entry(
1902 __field( dev_t, dev )
1903 __field( ino_t, ino )
1904 __field( int, ret )
1905 ),
1906
1907 TP_fast_assign(
1908 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1909 tp_assign(ino, dentry->d_inode->i_ino)
1910 tp_assign(ret, ret)
1911 ),
1912
1913 TP_printk("dev %d,%d ino %lu ret %d",
1914 MAJOR(__entry->dev), MINOR(__entry->dev),
1915 (unsigned long) __entry->ino,
1916 __entry->ret)
1917)
1918
3bc29f0a 1919LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
b87700e3
AG
1920 TP_PROTO(struct inode *inode),
1921
1922 TP_ARGS(inode),
1923
1924 TP_STRUCT__entry(
1925 __field( dev_t, dev )
1926 __field( ino_t, ino )
1927 __field( __u64, blocks )
1928 ),
1929
1930 TP_fast_assign(
1931 tp_assign(dev, inode->i_sb->s_dev)
1932 tp_assign(ino, inode->i_ino)
1933 tp_assign(blocks, inode->i_blocks)
1934 ),
1935
1936 TP_printk("dev %d,%d ino %lu blocks %llu",
1937 MAJOR(__entry->dev), MINOR(__entry->dev),
1938 (unsigned long) __entry->ino, __entry->blocks)
1939)
1940
3bc29f0a 1941LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
b87700e3
AG
1942
1943 TP_PROTO(struct inode *inode),
1944
1945 TP_ARGS(inode)
1946)
1947
3bc29f0a 1948LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_exit,
b87700e3
AG
1949
1950 TP_PROTO(struct inode *inode),
1951
1952 TP_ARGS(inode)
1953)
1954
1955#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1956/* 'ux' is the uninitialized extent. */
3bc29f0a 1957LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
b87700e3
AG
1958 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1959 struct ext4_extent *ux),
1960
1961 TP_ARGS(inode, map, ux),
1962
1963 TP_STRUCT__entry(
1964 __field( dev_t, dev )
1965 __field( ino_t, ino )
1966 __field( ext4_lblk_t, m_lblk )
1967 __field( unsigned, m_len )
1968 __field( ext4_lblk_t, u_lblk )
1969 __field( unsigned, u_len )
1970 __field( ext4_fsblk_t, u_pblk )
1971 ),
1972
1973 TP_fast_assign(
1974 tp_assign(dev, inode->i_sb->s_dev)
1975 tp_assign(ino, inode->i_ino)
1976 tp_assign(m_lblk, map->m_lblk)
1977 tp_assign(m_len, map->m_len)
1978 tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
1979 tp_assign(u_len, ext4_ext_get_actual_len(ux))
1980 tp_assign(u_pblk, ext4_ext_pblock(ux))
1981 ),
1982
1983 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u "
1984 "u_pblk %llu",
1985 MAJOR(__entry->dev), MINOR(__entry->dev),
1986 (unsigned long) __entry->ino,
1987 __entry->m_lblk, __entry->m_len,
1988 __entry->u_lblk, __entry->u_len, __entry->u_pblk)
1989)
1990
1991/*
1992 * 'ux' is the uninitialized extent.
1993 * 'ix' is the initialized extent to which blocks are transferred.
1994 */
3bc29f0a 1995LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath,
b87700e3
AG
1996 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1997 struct ext4_extent *ux, struct ext4_extent *ix),
1998
1999 TP_ARGS(inode, map, ux, ix),
2000
2001 TP_STRUCT__entry(
2002 __field( dev_t, dev )
2003 __field( ino_t, ino )
2004 __field( ext4_lblk_t, m_lblk )
2005 __field( unsigned, m_len )
2006 __field( ext4_lblk_t, u_lblk )
2007 __field( unsigned, u_len )
2008 __field( ext4_fsblk_t, u_pblk )
2009 __field( ext4_lblk_t, i_lblk )
2010 __field( unsigned, i_len )
2011 __field( ext4_fsblk_t, i_pblk )
2012 ),
2013
2014 TP_fast_assign(
2015 tp_assign(dev, inode->i_sb->s_dev)
2016 tp_assign(ino, inode->i_ino)
2017 tp_assign(m_lblk, map->m_lblk)
2018 tp_assign(m_len, map->m_len)
2019 tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
2020 tp_assign(u_len, ext4_ext_get_actual_len(ux))
2021 tp_assign(u_pblk, ext4_ext_pblock(ux))
2022 tp_assign(i_lblk, le32_to_cpu(ix->ee_block))
2023 tp_assign(i_len, ext4_ext_get_actual_len(ix))
2024 tp_assign(i_pblk, ext4_ext_pblock(ix))
2025 ),
2026
2027 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u "
2028 "u_lblk %u u_len %u u_pblk %llu "
2029 "i_lblk %u i_len %u i_pblk %llu ",
2030 MAJOR(__entry->dev), MINOR(__entry->dev),
2031 (unsigned long) __entry->ino,
2032 __entry->m_lblk, __entry->m_len,
2033 __entry->u_lblk, __entry->u_len, __entry->u_pblk,
2034 __entry->i_lblk, __entry->i_len, __entry->i_pblk)
2035)
2036#endif
2037
3bc29f0a 2038LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter,
b87700e3
AG
2039 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2040 unsigned int len, unsigned int flags),
2041
2042 TP_ARGS(inode, lblk, len, flags),
2043
2044 TP_STRUCT__entry(
2045 __field( dev_t, dev )
2046 __field( ino_t, ino )
2047 __field( ext4_lblk_t, lblk )
2048 __field( unsigned int, len )
2049 __field( unsigned int, flags )
2050 ),
2051
2052 TP_fast_assign(
2053 tp_assign(dev, inode->i_sb->s_dev)
2054 tp_assign(ino, inode->i_ino)
2055 tp_assign(lblk, lblk)
2056 tp_assign(len, len)
2057 tp_assign(flags, flags)
2058 ),
2059
2060 TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
2061 MAJOR(__entry->dev), MINOR(__entry->dev),
2062 (unsigned long) __entry->ino,
2063 __entry->lblk, __entry->len, __entry->flags)
2064)
2065
3bc29f0a 2066LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
b87700e3
AG
2067 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2068 unsigned len, unsigned flags),
2069
2070 TP_ARGS(inode, lblk, len, flags)
2071)
2072
3bc29f0a 2073LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
b87700e3
AG
2074 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2075 unsigned len, unsigned flags),
2076
2077 TP_ARGS(inode, lblk, len, flags)
2078)
2079
00be8842
MD
2080#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2081
3bc29f0a 2082LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
00be8842
MD
2083 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
2084 int ret),
2085
2086 TP_ARGS(inode, flags, map, ret),
2087
2088 TP_STRUCT__entry(
2089 __field( dev_t, dev )
2090 __field( ino_t, ino )
2091 __field( unsigned int, flags )
2092 __field( ext4_fsblk_t, pblk )
2093 __field( ext4_lblk_t, lblk )
2094 __field( unsigned int, len )
2095 __field( unsigned int, mflags )
2096 __field( int, ret )
2097 ),
2098
2099 TP_fast_assign(
2100 tp_assign(dev, inode->i_sb->s_dev)
2101 tp_assign(ino, inode->i_ino)
2102 tp_assign(flags, flags)
2103 tp_assign(pblk, map->m_pblk)
2104 tp_assign(lblk, map->m_lblk)
2105 tp_assign(len, map->m_len)
2106 tp_assign(mflags, map->m_flags)
2107 tp_assign(ret, ret)
2108 ),
2109
2110 TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u "
2111 "mflags %s ret %d",
2112 MAJOR(__entry->dev), MINOR(__entry->dev),
2113 (unsigned long) __entry->ino,
2114 show_map_flags(__entry->flags), __entry->lblk, __entry->pblk,
2115 __entry->len, show_mflags(__entry->mflags), __entry->ret)
2116)
2117
3bc29f0a 2118LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
00be8842
MD
2119 TP_PROTO(struct inode *inode, unsigned flags,
2120 struct ext4_map_blocks *map, int ret),
2121
2122 TP_ARGS(inode, flags, map, ret)
2123)
2124
3bc29f0a 2125LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
00be8842
MD
2126 TP_PROTO(struct inode *inode, unsigned flags,
2127 struct ext4_map_blocks *map, int ret),
2128
2129 TP_ARGS(inode, flags, map, ret)
2130)
2131
2132#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
162774b4 2133
3bc29f0a 2134LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
162774b4
MD
2135 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2136
2137 TP_ARGS(inode, map, ret),
2138
2139 TP_STRUCT__entry(
2140 __field( dev_t, dev )
2141 __field( ino_t, ino )
2142 __field( ext4_fsblk_t, pblk )
2143 __field( ext4_lblk_t, lblk )
2144 __field( unsigned int, len )
2145 __field( unsigned int, flags )
2146 __field( int, ret )
2147 ),
2148
2149 TP_fast_assign(
2150 tp_assign(dev, inode->i_sb->s_dev)
2151 tp_assign(ino, inode->i_ino)
2152 tp_assign(pblk, map->m_pblk)
2153 tp_assign(lblk, map->m_lblk)
2154 tp_assign(len, map->m_len)
2155 tp_assign(flags, map->m_flags)
2156 tp_assign(ret, ret)
2157 ),
2158
2159 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d",
2160 MAJOR(__entry->dev), MINOR(__entry->dev),
2161 (unsigned long) __entry->ino,
2162 __entry->lblk, __entry->pblk,
2163 __entry->len, __entry->flags, __entry->ret)
2164)
2165
3bc29f0a 2166LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
162774b4
MD
2167 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2168
2169 TP_ARGS(inode, map, ret)
2170)
2171
3bc29f0a 2172LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
162774b4
MD
2173 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2174
2175 TP_ARGS(inode, map, ret)
2176)
2177
2178#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2179
3bc29f0a 2180LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
b87700e3
AG
2181 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2182 ext4_fsblk_t pblk, unsigned int len, int ret),
2183
2184 TP_ARGS(inode, lblk, pblk, len, ret),
2185
2186 TP_STRUCT__entry(
2187 __field( dev_t, dev )
2188 __field( ino_t, ino )
2189 __field( ext4_fsblk_t, pblk )
2190 __field( ext4_lblk_t, lblk )
2191 __field( unsigned int, len )
2192 __field( int, ret )
2193 ),
2194
2195 TP_fast_assign(
2196 tp_assign(dev, inode->i_sb->s_dev)
2197 tp_assign(ino, inode->i_ino)
2198 tp_assign(pblk, pblk)
2199 tp_assign(lblk, lblk)
2200 tp_assign(len, len)
2201 tp_assign(ret, ret)
2202 ),
2203
2204 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d",
2205 MAJOR(__entry->dev), MINOR(__entry->dev),
2206 (unsigned long) __entry->ino,
2207 __entry->lblk, __entry->pblk,
2208 __entry->len, __entry->ret)
2209)
2210
3bc29f0a 2211LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
b87700e3
AG
2212 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2213 ext4_fsblk_t pblk, unsigned len, int ret),
2214
2215 TP_ARGS(inode, lblk, pblk, len, ret)
2216)
2217
3bc29f0a 2218LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
b87700e3
AG
2219 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2220 ext4_fsblk_t pblk, unsigned len, int ret),
2221
2222 TP_ARGS(inode, lblk, pblk, len, ret)
2223)
2224
162774b4
MD
2225#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2226
3bc29f0a 2227LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
b87700e3
AG
2228 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
2229
2230 TP_ARGS(inode, lblk, pblk),
2231
2232 TP_STRUCT__entry(
2233 __field( dev_t, dev )
2234 __field( ino_t, ino )
2235 __field( ext4_fsblk_t, pblk )
2236 __field( ext4_lblk_t, lblk )
2237 ),
2238
2239 TP_fast_assign(
2240 tp_assign(dev, inode->i_sb->s_dev)
2241 tp_assign(ino, inode->i_ino)
2242 tp_assign(pblk, pblk)
2243 tp_assign(lblk, lblk)
2244 ),
2245
2246 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
2247 MAJOR(__entry->dev), MINOR(__entry->dev),
2248 (unsigned long) __entry->ino,
2249 __entry->lblk, __entry->pblk)
2250)
2251
3bc29f0a 2252LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
b87700e3
AG
2253 TP_PROTO(struct inode *inode),
2254
2255 TP_ARGS(inode),
2256
2257 TP_STRUCT__entry(
2258 __field( dev_t, dev )
2259 __field( ino_t, ino )
2260 ),
2261
2262 TP_fast_assign(
2263 tp_assign(dev, inode->i_sb->s_dev)
2264 tp_assign(ino, inode->i_ino)
2265 ),
2266
2267 TP_printk("dev %d,%d ino %ld",
2268 MAJOR(__entry->dev), MINOR(__entry->dev),
2269 (unsigned long) __entry->ino)
2270)
2271#endif
2272
00be8842
MD
2273#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2274
3bc29f0a 2275LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
00be8842
MD
2276 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
2277 unsigned long IP),
2278
2279 TP_ARGS(sb, blocks, rsv_blocks, IP),
2280
2281 TP_STRUCT__entry(
2282 __field( dev_t, dev )
2283 __field(unsigned long, ip )
2284 __field( int, blocks )
2285 __field( int, rsv_blocks )
2286 ),
2287
2288 TP_fast_assign(
2289 tp_assign(dev, sb->s_dev)
2290 tp_assign(ip, IP)
2291 tp_assign(blocks, blocks)
2292 tp_assign(rsv_blocks, rsv_blocks)
2293 ),
2294
2295 TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF",
2296 MAJOR(__entry->dev), MINOR(__entry->dev),
2297 __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip)
2298)
2299
3bc29f0a 2300LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
00be8842
MD
2301 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
2302
2303 TP_ARGS(sb, blocks, IP),
2304
2305 TP_STRUCT__entry(
2306 __field( dev_t, dev )
2307 __field(unsigned long, ip )
2308 __field( int, blocks )
2309 ),
2310
2311 TP_fast_assign(
2312 tp_assign(dev, sb->s_dev)
2313 tp_assign(ip, IP)
2314 tp_assign(blocks, blocks)
2315 ),
2316
2317 TP_printk("dev %d,%d blocks, %d caller %pF",
2318 MAJOR(__entry->dev), MINOR(__entry->dev),
2319 __entry->blocks, (void *)__entry->ip)
2320)
2321
2322#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
2323
3bc29f0a 2324LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
b87700e3
AG
2325 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
2326
2327 TP_ARGS(sb, nblocks, IP),
2328
2329 TP_STRUCT__entry(
2330 __field( dev_t, dev )
2331 __field(unsigned long, ip )
2332 __field( int, nblocks )
2333 ),
2334
2335 TP_fast_assign(
2336 tp_assign(dev, sb->s_dev)
2337 tp_assign(ip, IP)
2338 tp_assign(nblocks, nblocks)
2339 ),
2340
2341 TP_printk("dev %d,%d nblocks %d caller %pF",
2342 MAJOR(__entry->dev), MINOR(__entry->dev),
2343 __entry->nblocks, (void *)__entry->ip)
2344)
2345
3bc29f0a 2346LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim,
b87700e3
AG
2347 TP_PROTO(struct super_block *sb,
2348 ext4_group_t group,
2349 ext4_grpblk_t start,
2350 ext4_grpblk_t len),
2351
2352 TP_ARGS(sb, group, start, len),
2353
2354 TP_STRUCT__entry(
2355 __field( int, dev_major )
2356 __field( int, dev_minor )
2357 __field( __u32, group )
2358 __field( int, start )
2359 __field( int, len )
2360 ),
2361
2362 TP_fast_assign(
2363 tp_assign(dev_major, MAJOR(sb->s_dev))
2364 tp_assign(dev_minor, MINOR(sb->s_dev))
2365 tp_assign(group, group)
2366 tp_assign(start, start)
2367 tp_assign(len, len)
2368 ),
2369
2370 TP_printk("dev %d,%d group %u, start %d, len %d",
2371 __entry->dev_major, __entry->dev_minor,
2372 __entry->group, __entry->start, __entry->len)
2373)
2374
3bc29f0a 2375LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_extent,
b87700e3
AG
2376
2377 TP_PROTO(struct super_block *sb,
2378 ext4_group_t group,
2379 ext4_grpblk_t start,
2380 ext4_grpblk_t len),
2381
2382 TP_ARGS(sb, group, start, len)
2383)
2384
3bc29f0a 2385LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_all_free,
b87700e3
AG
2386
2387 TP_PROTO(struct super_block *sb,
2388 ext4_group_t group,
2389 ext4_grpblk_t start,
2390 ext4_grpblk_t len),
2391
2392 TP_ARGS(sb, group, start, len)
2393)
2394#endif
2395
2396#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
162774b4 2397
3bc29f0a 2398LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
162774b4
MD
2399#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2400 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
2401 unsigned int allocated, ext4_fsblk_t newblock),
2402
2403 TP_ARGS(inode, map, flags, allocated, newblock),
2404#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
2405 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
2406 unsigned int allocated, ext4_fsblk_t newblock),
2407
2408 TP_ARGS(inode, map, allocated, newblock),
162774b4 2409#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
2410
2411 TP_STRUCT__entry(
2412 __field( dev_t, dev )
2413 __field( ino_t, ino )
2414 __field( int, flags )
2415 __field( ext4_lblk_t, lblk )
2416 __field( ext4_fsblk_t, pblk )
2417 __field( unsigned int, len )
2418 __field( unsigned int, allocated )
2419 __field( ext4_fsblk_t, newblk )
2420 ),
2421
2422 TP_fast_assign(
2423 tp_assign(dev, inode->i_sb->s_dev)
2424 tp_assign(ino, inode->i_ino)
162774b4
MD
2425#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2426 tp_assign(flags, flags)
2427#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3 2428 tp_assign(flags, map->m_flags)
162774b4 2429#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
2430 tp_assign(lblk, map->m_lblk)
2431 tp_assign(pblk, map->m_pblk)
2432 tp_assign(len, map->m_len)
2433 tp_assign(allocated, allocated)
2434 tp_assign(newblk, newblock)
2435 ),
2436
2437 TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d"
2438 "allocated %d newblock %llu",
2439 MAJOR(__entry->dev), MINOR(__entry->dev),
2440 (unsigned long) __entry->ino,
2441 (unsigned) __entry->lblk, (unsigned long long) __entry->pblk,
2442 __entry->len, __entry->flags,
2443 (unsigned int) __entry->allocated,
2444 (unsigned long long) __entry->newblk)
2445)
2446
3bc29f0a 2447LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
b87700e3
AG
2448 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
2449
2450 TP_ARGS(sb, map, ret),
2451
2452 TP_STRUCT__entry(
2453 __field( dev_t, dev )
2454 __field( unsigned int, flags )
2455 __field( ext4_lblk_t, lblk )
2456 __field( ext4_fsblk_t, pblk )
2457 __field( unsigned int, len )
2458 __field( int, ret )
2459 ),
2460
2461 TP_fast_assign(
2462 tp_assign(dev, sb->s_dev)
2463 tp_assign(flags, map->m_flags)
2464 tp_assign(lblk, map->m_lblk)
2465 tp_assign(pblk, map->m_pblk)
2466 tp_assign(len, map->m_len)
2467 tp_assign(ret, ret)
2468 ),
2469
2470 TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d",
2471 MAJOR(__entry->dev), MINOR(__entry->dev),
2472 __entry->lblk, (unsigned long long) __entry->pblk,
2473 __entry->len, __entry->flags, __entry->ret)
2474)
2475
3bc29f0a 2476LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
b87700e3
AG
2477 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
2478 ext4_fsblk_t start),
2479
2480 TP_ARGS(inode, lblk, len, start),
2481
2482 TP_STRUCT__entry(
2483 __field( dev_t, dev )
2484 __field( ino_t, ino )
2485 __field( ext4_lblk_t, lblk )
2486 __field( unsigned int, len )
2487 __field( ext4_fsblk_t, start )
2488 ),
2489
2490 TP_fast_assign(
2491 tp_assign(dev, inode->i_sb->s_dev)
2492 tp_assign(ino, inode->i_ino)
2493 tp_assign(lblk, lblk)
2494 tp_assign(len, len)
2495 tp_assign(start, start)
2496 ),
2497
2498 TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu",
2499 MAJOR(__entry->dev), MINOR(__entry->dev),
2500 (unsigned long) __entry->ino,
2501 (unsigned) __entry->lblk,
2502 __entry->len,
2503 (unsigned long long) __entry->start)
2504)
2505
3bc29f0a 2506LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
b87700e3
AG
2507 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
2508
2509 TP_ARGS(inode, lblk, ret),
2510
2511 TP_STRUCT__entry(
2512 __field( dev_t, dev )
2513 __field( ino_t, ino )
2514 __field( ext4_lblk_t, lblk )
2515 __field( int, ret )
2516 ),
2517
2518 TP_fast_assign(
2519 tp_assign(dev, inode->i_sb->s_dev)
2520 tp_assign(ino, inode->i_ino)
2521 tp_assign(lblk, lblk)
2522 tp_assign(ret, ret)
2523 ),
2524
2525 TP_printk("dev %d,%d ino %lu lblk %u ret %d",
2526 MAJOR(__entry->dev), MINOR(__entry->dev),
2527 (unsigned long) __entry->ino,
2528 (unsigned) __entry->lblk,
2529 __entry->ret)
2530
2531)
2532
3bc29f0a 2533LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
b87700e3
AG
2534 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
2535 int reverse, int found, ext4_lblk_t found_blk),
2536
2537 TP_ARGS(inode, from, to, reverse, found, found_blk),
2538
2539 TP_STRUCT__entry(
2540 __field( dev_t, dev )
2541 __field( ino_t, ino )
2542 __field( ext4_lblk_t, from )
2543 __field( ext4_lblk_t, to )
2544 __field( int, reverse )
2545 __field( int, found )
2546 __field( ext4_lblk_t, found_blk )
2547 ),
2548
2549 TP_fast_assign(
2550 tp_assign(dev, inode->i_sb->s_dev)
2551 tp_assign(ino, inode->i_ino)
2552 tp_assign(from, from)
2553 tp_assign(to, to)
2554 tp_assign(reverse, reverse)
2555 tp_assign(found, found)
2556 tp_assign(found_blk, found_blk)
2557 ),
2558
2559 TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d "
2560 "(blk = %u)",
2561 MAJOR(__entry->dev), MINOR(__entry->dev),
2562 (unsigned long) __entry->ino,
2563 (unsigned) __entry->from, (unsigned) __entry->to,
2564 __entry->reverse, __entry->found,
2565 (unsigned) __entry->found_blk)
2566)
2567
3bc29f0a 2568LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
b87700e3
AG
2569 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
2570
2571 TP_ARGS(inode, lblk, len),
2572
2573 TP_STRUCT__entry(
2574 __field( dev_t, dev )
2575 __field( ino_t, ino )
2576 __field( ext4_lblk_t, lblk )
2577 __field( unsigned int, len )
2578 ),
2579
2580 TP_fast_assign(
2581 tp_assign(dev, inode->i_sb->s_dev)
2582 tp_assign(ino, inode->i_ino)
2583 tp_assign(lblk, lblk)
2584 tp_assign(len, len)
2585 ),
2586
2587 TP_printk("dev %d,%d ino %lu lblk %u len %u",
2588 MAJOR(__entry->dev), MINOR(__entry->dev),
2589 (unsigned long) __entry->ino,
2590 (unsigned) __entry->lblk,
2591 __entry->len)
2592)
2593
3bc29f0a 2594LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
b87700e3
AG
2595 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
2596 unsigned short len),
2597
2598 TP_ARGS(inode, lblk, pblk, len),
2599
2600 TP_STRUCT__entry(
2601 __field( dev_t, dev )
2602 __field( ino_t, ino )
2603 __field( ext4_fsblk_t, pblk )
2604 __field( ext4_lblk_t, lblk )
2605 __field( unsigned short, len )
2606 ),
2607
2608 TP_fast_assign(
2609 tp_assign(dev, inode->i_sb->s_dev)
2610 tp_assign(ino, inode->i_ino)
2611 tp_assign(pblk, pblk)
2612 tp_assign(lblk, lblk)
2613 tp_assign(len, len)
2614 ),
2615
2616 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u",
2617 MAJOR(__entry->dev), MINOR(__entry->dev),
2618 (unsigned long) __entry->ino,
2619 (unsigned) __entry->lblk,
2620 (unsigned long long) __entry->pblk,
2621 (unsigned short) __entry->len)
2622)
2623
00be8842
MD
2624#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2625
3bc29f0a 2626LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
00be8842
MD
2627 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
2628 ext4_lblk_t from, ext4_fsblk_t to,
2629 long long partial_cluster),
2630
2631 TP_ARGS(inode, ex, from, to, partial_cluster),
2632
2633 TP_STRUCT__entry(
2634 __field( dev_t, dev )
2635 __field( ino_t, ino )
2636 __field( ext4_lblk_t, from )
2637 __field( ext4_lblk_t, to )
2638 __field( long long, partial )
2639 __field( ext4_fsblk_t, ee_pblk )
2640 __field( ext4_lblk_t, ee_lblk )
2641 __field( unsigned short, ee_len )
2642 ),
2643
2644 TP_fast_assign(
2645 tp_assign(dev, inode->i_sb->s_dev)
2646 tp_assign(ino, inode->i_ino)
2647 tp_assign(from, from)
2648 tp_assign(to, to)
2649 tp_assign(partial, partial_cluster)
2650 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2651 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2652 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2653 ),
2654
2655 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
2656 "from %u to %u partial_cluster %lld",
2657 MAJOR(__entry->dev), MINOR(__entry->dev),
2658 (unsigned long) __entry->ino,
2659 (unsigned) __entry->ee_lblk,
2660 (unsigned long long) __entry->ee_pblk,
2661 (unsigned short) __entry->ee_len,
2662 (unsigned) __entry->from,
2663 (unsigned) __entry->to,
2664 (long long) __entry->partial)
2665)
2666
2667#else
2668
3bc29f0a 2669LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
b87700e3
AG
2670 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
2671 ext4_lblk_t from, ext4_fsblk_t to,
2672 ext4_fsblk_t partial_cluster),
2673
2674 TP_ARGS(inode, ex, from, to, partial_cluster),
2675
2676 TP_STRUCT__entry(
2677 __field( dev_t, dev )
2678 __field( ino_t, ino )
2679 __field( ext4_lblk_t, from )
2680 __field( ext4_lblk_t, to )
2681 __field( ext4_fsblk_t, partial )
2682 __field( ext4_fsblk_t, ee_pblk )
2683 __field( ext4_lblk_t, ee_lblk )
2684 __field( unsigned short, ee_len )
2685 ),
2686
2687 TP_fast_assign(
2688 tp_assign(dev, inode->i_sb->s_dev)
2689 tp_assign(ino, inode->i_ino)
2690 tp_assign(from, from)
2691 tp_assign(to, to)
2692 tp_assign(partial, partial_cluster)
2693 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2694 tp_assign(ee_lblk, cpu_to_le32(ex->ee_block))
2695 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2696 ),
2697
2698 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
2699 "from %u to %u partial_cluster %u",
2700 MAJOR(__entry->dev), MINOR(__entry->dev),
2701 (unsigned long) __entry->ino,
2702 (unsigned) __entry->ee_lblk,
2703 (unsigned long long) __entry->ee_pblk,
2704 (unsigned short) __entry->ee_len,
2705 (unsigned) __entry->from,
2706 (unsigned) __entry->to,
2707 (unsigned) __entry->partial)
2708)
2709
00be8842
MD
2710#endif
2711
2712#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2713
3bc29f0a 2714LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
00be8842
MD
2715 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2716 struct ext4_extent *ex,
2717 long long partial_cluster),
2718
2719 TP_ARGS(inode, start, ex, partial_cluster),
2720
2721 TP_STRUCT__entry(
2722 __field( dev_t, dev )
2723 __field( ino_t, ino )
2724 __field( long long, partial )
2725 __field( ext4_lblk_t, start )
2726 __field( ext4_lblk_t, ee_lblk )
2727 __field( ext4_fsblk_t, ee_pblk )
2728 __field( short, ee_len )
2729 ),
2730
2731 TP_fast_assign(
2732 tp_assign(dev, inode->i_sb->s_dev)
2733 tp_assign(ino, inode->i_ino)
2734 tp_assign(partial, partial_cluster)
2735 tp_assign(start, start)
2736 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2737 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2738 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2739 ),
2740
2741 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
2742 "partial_cluster %lld",
2743 MAJOR(__entry->dev), MINOR(__entry->dev),
2744 (unsigned long) __entry->ino,
2745 (unsigned) __entry->start,
2746 (unsigned) __entry->ee_lblk,
2747 (unsigned long long) __entry->ee_pblk,
2748 (unsigned short) __entry->ee_len,
2749 (long long) __entry->partial)
2750)
2751
2752#else
2753
3bc29f0a 2754LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
b87700e3
AG
2755 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2756 struct ext4_extent *ex, ext4_fsblk_t partial_cluster),
2757
2758 TP_ARGS(inode, start, ex, partial_cluster),
2759
2760 TP_STRUCT__entry(
2761 __field( dev_t, dev )
2762 __field( ino_t, ino )
2763 __field( ext4_fsblk_t, partial )
2764 __field( ext4_lblk_t, start )
2765 __field( ext4_lblk_t, ee_lblk )
2766 __field( ext4_fsblk_t, ee_pblk )
2767 __field( short, ee_len )
2768 ),
2769
2770 TP_fast_assign(
2771 tp_assign(dev, inode->i_sb->s_dev)
2772 tp_assign(ino, inode->i_ino)
2773 tp_assign(partial, partial_cluster)
2774 tp_assign(start, start)
2775 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2776 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2777 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2778 ),
2779
2780 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
2781 "partial_cluster %u",
2782 MAJOR(__entry->dev), MINOR(__entry->dev),
2783 (unsigned long) __entry->ino,
2784 (unsigned) __entry->start,
2785 (unsigned) __entry->ee_lblk,
2786 (unsigned long long) __entry->ee_pblk,
2787 (unsigned short) __entry->ee_len,
2788 (unsigned) __entry->partial)
2789)
2790
00be8842
MD
2791#endif
2792
3bc29f0a 2793LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx,
b87700e3
AG
2794 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
2795
2796 TP_ARGS(inode, pblk),
2797
2798 TP_STRUCT__entry(
2799 __field( dev_t, dev )
2800 __field( ino_t, ino )
2801 __field( ext4_fsblk_t, pblk )
2802 ),
2803
2804 TP_fast_assign(
2805 tp_assign(dev, inode->i_sb->s_dev)
2806 tp_assign(ino, inode->i_ino)
2807 tp_assign(pblk, pblk)
2808 ),
2809
2810 TP_printk("dev %d,%d ino %lu index_pblk %llu",
2811 MAJOR(__entry->dev), MINOR(__entry->dev),
2812 (unsigned long) __entry->ino,
2813 (unsigned long long) __entry->pblk)
2814)
2815
00be8842
MD
2816#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2817
3bc29f0a 2818LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
00be8842
MD
2819 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2820 ext4_lblk_t end, int depth),
2821
2822 TP_ARGS(inode, start, end, depth),
2823
2824 TP_STRUCT__entry(
2825 __field( dev_t, dev )
2826 __field( ino_t, ino )
2827 __field( ext4_lblk_t, start )
2828 __field( ext4_lblk_t, end )
2829 __field( int, depth )
2830 ),
2831
2832 TP_fast_assign(
2833 tp_assign(dev, inode->i_sb->s_dev)
2834 tp_assign(ino, inode->i_ino)
2835 tp_assign(start, start)
2836 tp_assign(end, end)
2837 tp_assign(depth, depth)
2838 ),
2839
2840 TP_printk("dev %d,%d ino %lu since %u end %u depth %d",
2841 MAJOR(__entry->dev), MINOR(__entry->dev),
2842 (unsigned long) __entry->ino,
2843 (unsigned) __entry->start,
2844 (unsigned) __entry->end,
2845 __entry->depth)
2846)
2847
2848#else
2849
3bc29f0a 2850LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
b87700e3
AG
2851 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth),
2852
2853 TP_ARGS(inode, start, depth),
2854
2855 TP_STRUCT__entry(
2856 __field( dev_t, dev )
2857 __field( ino_t, ino )
2858 __field( ext4_lblk_t, start )
2859 __field( int, depth )
2860 ),
2861
2862 TP_fast_assign(
2863 tp_assign(dev, inode->i_sb->s_dev)
2864 tp_assign(ino, inode->i_ino)
2865 tp_assign(start, start)
2866 tp_assign(depth, depth)
2867 ),
2868
2869 TP_printk("dev %d,%d ino %lu since %u depth %d",
2870 MAJOR(__entry->dev), MINOR(__entry->dev),
2871 (unsigned long) __entry->ino,
2872 (unsigned) __entry->start,
2873 __entry->depth)
2874)
2875
00be8842
MD
2876#endif
2877
2878#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2879
3bc29f0a 2880LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
00be8842
MD
2881 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
2882 int depth, long long partial, __le16 eh_entries),
2883
2884 TP_ARGS(inode, start, end, depth, partial, eh_entries),
2885
2886 TP_STRUCT__entry(
2887 __field( dev_t, dev )
2888 __field( ino_t, ino )
2889 __field( ext4_lblk_t, start )
2890 __field( ext4_lblk_t, end )
2891 __field( int, depth )
2892 __field( long long, partial )
2893 __field( unsigned short, eh_entries )
2894 ),
2895
2896 TP_fast_assign(
2897 tp_assign(dev, inode->i_sb->s_dev)
2898 tp_assign(ino, inode->i_ino)
2899 tp_assign(start, start)
2900 tp_assign(end, end)
2901 tp_assign(depth, depth)
2902 tp_assign(partial, partial)
2903 tp_assign(eh_entries, le16_to_cpu(eh_entries))
2904 ),
2905
2906 TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld "
2907 "remaining_entries %u",
2908 MAJOR(__entry->dev), MINOR(__entry->dev),
2909 (unsigned long) __entry->ino,
2910 (unsigned) __entry->start,
2911 (unsigned) __entry->end,
2912 __entry->depth,
2913 (long long) __entry->partial,
2914 (unsigned short) __entry->eh_entries)
2915)
2916
2917#else
2918
3bc29f0a 2919LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
b87700e3
AG
2920 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth,
2921 ext4_lblk_t partial, unsigned short eh_entries),
2922
2923 TP_ARGS(inode, start, depth, partial, eh_entries),
2924
2925 TP_STRUCT__entry(
2926 __field( dev_t, dev )
2927 __field( ino_t, ino )
2928 __field( ext4_lblk_t, start )
2929 __field( int, depth )
2930 __field( ext4_lblk_t, partial )
2931 __field( unsigned short, eh_entries )
2932 ),
2933
2934 TP_fast_assign(
2935 tp_assign(dev, inode->i_sb->s_dev)
2936 tp_assign(ino, inode->i_ino)
2937 tp_assign(start, start)
2938 tp_assign(depth, depth)
2939 tp_assign(partial, partial)
2940 tp_assign(eh_entries, eh_entries)
2941 ),
2942
2943 TP_printk("dev %d,%d ino %lu since %u depth %d partial %u "
2944 "remaining_entries %u",
2945 MAJOR(__entry->dev), MINOR(__entry->dev),
2946 (unsigned long) __entry->ino,
2947 (unsigned) __entry->start,
2948 __entry->depth,
2949 (unsigned) __entry->partial,
2950 (unsigned short) __entry->eh_entries)
2951)
00be8842
MD
2952
2953#endif
2954
2955#endif
2956
39aee4a0
MD
2957#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
2958
3bc29f0a 2959LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
39aee4a0
MD
2960 TP_PROTO(struct inode *inode, struct extent_status *es),
2961
2962 TP_ARGS(inode, es),
2963
2964 TP_STRUCT__entry(
2965 __field( dev_t, dev )
2966 __field( ino_t, ino )
2967 __field( ext4_lblk_t, lblk )
2968 __field( ext4_lblk_t, len )
2969 __field( ext4_fsblk_t, pblk )
2970 __field( char, status )
2971 ),
2972
2973 TP_fast_assign(
2974 tp_assign(dev, inode->i_sb->s_dev)
2975 tp_assign(ino, inode->i_ino)
2976 tp_assign(lblk, es->es_lblk)
2977 tp_assign(len, es->es_len)
2978 tp_assign(pblk, ext4_es_pblock(es))
2979 tp_assign(status, ext4_es_status(es))
2980 ),
2981
2982 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
2983 MAJOR(__entry->dev), MINOR(__entry->dev),
2984 (unsigned long) __entry->ino,
2985 __entry->lblk, __entry->len,
2986 __entry->pblk, show_extent_status(__entry->status))
2987)
2988
3bc29f0a 2989LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent,
39aee4a0
MD
2990 TP_PROTO(struct inode *inode, struct extent_status *es),
2991
2992 TP_ARGS(inode, es)
2993)
2994
3bc29f0a 2995LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_cache_extent,
39aee4a0
MD
2996 TP_PROTO(struct inode *inode, struct extent_status *es),
2997
2998 TP_ARGS(inode, es)
2999)
3000
3001#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842 3002
3bc29f0a 3003LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent,
00be8842
MD
3004 TP_PROTO(struct inode *inode, struct extent_status *es),
3005
3006 TP_ARGS(inode, es),
3007
3008 TP_STRUCT__entry(
3009 __field( dev_t, dev )
3010 __field( ino_t, ino )
3011 __field( ext4_lblk_t, lblk )
3012 __field( ext4_lblk_t, len )
3013 __field( ext4_fsblk_t, pblk )
3014 __field( char, status )
3015 ),
3016
3017 TP_fast_assign(
3018 tp_assign(dev, inode->i_sb->s_dev)
3019 tp_assign(ino, inode->i_ino)
3020 tp_assign(lblk, es->es_lblk)
3021 tp_assign(len, es->es_len)
3022 tp_assign(pblk, ext4_es_pblock(es))
3023 tp_assign(status, ext4_es_status(es) >> 60)
3024 ),
3025
3026 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
3027 MAJOR(__entry->dev), MINOR(__entry->dev),
3028 (unsigned long) __entry->ino,
3029 __entry->lblk, __entry->len,
3030 __entry->pblk, show_extent_status(__entry->status))
3031)
3032
3bc29f0a 3033LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent,
00be8842
MD
3034 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len),
3035
3036 TP_ARGS(inode, lblk, len),
3037
3038 TP_STRUCT__entry(
3039 __field( dev_t, dev )
3040 __field( ino_t, ino )
3041 __field( loff_t, lblk )
3042 __field( loff_t, len )
3043 ),
3044
3045 TP_fast_assign(
3046 tp_assign(dev, inode->i_sb->s_dev)
3047 tp_assign(ino, inode->i_ino)
3048 tp_assign(lblk, lblk)
3049 tp_assign(len, len)
3050 ),
3051
3052 TP_printk("dev %d,%d ino %lu es [%lld/%lld)",
3053 MAJOR(__entry->dev), MINOR(__entry->dev),
3054 (unsigned long) __entry->ino,
3055 __entry->lblk, __entry->len)
3056)
3057
3bc29f0a 3058LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter,
00be8842
MD
3059 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
3060
3061 TP_ARGS(inode, lblk),
3062
3063 TP_STRUCT__entry(
3064 __field( dev_t, dev )
3065 __field( ino_t, ino )
3066 __field( ext4_lblk_t, lblk )
3067 ),
3068
3069 TP_fast_assign(
3070 tp_assign(dev, inode->i_sb->s_dev)
3071 tp_assign(ino, inode->i_ino)
3072 tp_assign(lblk, lblk)
3073 ),
3074
3075 TP_printk("dev %d,%d ino %lu lblk %u",
3076 MAJOR(__entry->dev), MINOR(__entry->dev),
3077 (unsigned long) __entry->ino, __entry->lblk)
3078)
3079
3bc29f0a 3080LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit,
00be8842
MD
3081 TP_PROTO(struct inode *inode, struct extent_status *es),
3082
3083 TP_ARGS(inode, es),
3084
3085 TP_STRUCT__entry(
3086 __field( dev_t, dev )
3087 __field( ino_t, ino )
3088 __field( ext4_lblk_t, lblk )
3089 __field( ext4_lblk_t, len )
3090 __field( ext4_fsblk_t, pblk )
3091 __field( char, status )
3092 ),
3093
3094 TP_fast_assign(
3095 tp_assign(dev, inode->i_sb->s_dev)
3096 tp_assign(ino, inode->i_ino)
3097 tp_assign(lblk, es->es_lblk)
3098 tp_assign(len, es->es_len)
3099 tp_assign(pblk, ext4_es_pblock(es))
3100 tp_assign(status, ext4_es_status(es) >> 60)
3101 ),
3102
3103 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
3104 MAJOR(__entry->dev), MINOR(__entry->dev),
3105 (unsigned long) __entry->ino,
3106 __entry->lblk, __entry->len,
3107 __entry->pblk, show_extent_status(__entry->status))
3108)
3109
3bc29f0a 3110LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter,
00be8842
MD
3111 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
3112
3113 TP_ARGS(inode, lblk),
3114
3115 TP_STRUCT__entry(
3116 __field( dev_t, dev )
3117 __field( ino_t, ino )
3118 __field( ext4_lblk_t, lblk )
3119 ),
3120
3121 TP_fast_assign(
3122 tp_assign(dev, inode->i_sb->s_dev)
3123 tp_assign(ino, inode->i_ino)
3124 tp_assign(lblk, lblk)
3125 ),
3126
3127 TP_printk("dev %d,%d ino %lu lblk %u",
3128 MAJOR(__entry->dev), MINOR(__entry->dev),
3129 (unsigned long) __entry->ino, __entry->lblk)
3130)
3131
3bc29f0a 3132LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit,
00be8842
MD
3133 TP_PROTO(struct inode *inode, struct extent_status *es,
3134 int found),
3135
3136 TP_ARGS(inode, es, found),
3137
3138 TP_STRUCT__entry(
3139 __field( dev_t, dev )
3140 __field( ino_t, ino )
3141 __field( ext4_lblk_t, lblk )
3142 __field( ext4_lblk_t, len )
3143 __field( ext4_fsblk_t, pblk )
3144 __field( char, status )
3145 __field( int, found )
3146 ),
3147
3148 TP_fast_assign(
3149 tp_assign(dev, inode->i_sb->s_dev)
3150 tp_assign(ino, inode->i_ino)
3151 tp_assign(lblk, es->es_lblk)
3152 tp_assign(len, es->es_len)
3153 tp_assign(pblk, ext4_es_pblock(es))
3154 tp_assign(status, ext4_es_status(es) >> 60)
3155 tp_assign(found, found)
3156 ),
3157
3158 TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s",
3159 MAJOR(__entry->dev), MINOR(__entry->dev),
3160 (unsigned long) __entry->ino, __entry->found,
3161 __entry->lblk, __entry->len,
3162 __entry->found ? __entry->pblk : 0,
3163 show_extent_status(__entry->found ? __entry->status : 0))
3164)
3165
3bc29f0a 3166LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter,
00be8842
MD
3167 TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt),
3168
3169 TP_ARGS(sb, nr_to_scan, cache_cnt),
3170
3171 TP_STRUCT__entry(
3172 __field( dev_t, dev )
3173 __field( int, nr_to_scan )
3174 __field( int, cache_cnt )
3175 ),
3176
3177 TP_fast_assign(
3178 tp_assign(dev, sb->s_dev)
3179 tp_assign(nr_to_scan, nr_to_scan)
3180 tp_assign(cache_cnt, cache_cnt)
3181 ),
3182
3183 TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d",
3184 MAJOR(__entry->dev), MINOR(__entry->dev),
3185 __entry->nr_to_scan, __entry->cache_cnt)
3186)
3187
3bc29f0a 3188LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
00be8842
MD
3189 TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt),
3190
3191 TP_ARGS(sb, shrunk_nr, cache_cnt),
3192
3193 TP_STRUCT__entry(
3194 __field( dev_t, dev )
3195 __field( int, shrunk_nr )
3196 __field( int, cache_cnt )
3197 ),
3198
3199 TP_fast_assign(
3200 tp_assign(dev, sb->s_dev)
3201 tp_assign(shrunk_nr, shrunk_nr)
3202 tp_assign(cache_cnt, cache_cnt)
3203 ),
3204
3205 TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d",
3206 MAJOR(__entry->dev), MINOR(__entry->dev),
3207 __entry->shrunk_nr, __entry->cache_cnt)
3208)
3209
b87700e3
AG
3210#endif
3211
3bc29f0a 3212#endif /* LTTNG_TRACE_EXT4_H */
b87700e3
AG
3213
3214/* This part must be outside protection */
3215#include "../../../probes/define_trace.h"
This page took 0.160048 seconds and 4 git commands to generate.