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