Extract input/output arguments from accept and connect syscalls
[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
c1b29b59
MD
501#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
502
503TRACE_EVENT(ext4_da_write_pages_extent,
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
b87700e3
AG
532TRACE_EVENT(ext4_da_writepages_result,
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))
626DECLARE_EVENT_CLASS(ext4__page_op,
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))
b87700e3
AG
651DEFINE_EVENT(ext4__page_op, ext4_writepage,
652
653 TP_PROTO(struct page *page),
654
655 TP_ARGS(page)
656)
657#endif
658
659DEFINE_EVENT(ext4__page_op, ext4_readpage,
660
661 TP_PROTO(struct page *page),
662
663 TP_ARGS(page)
664)
665
666DEFINE_EVENT(ext4__page_op, ext4_releasepage,
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
675DECLARE_EVENT_CLASS(ext4_invalidatepage_op,
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
703DEFINE_EVENT(ext4_invalidatepage_op, ext4_invalidatepage,
704 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
705
706 TP_ARGS(page, offset, length)
707)
708
709DEFINE_EVENT(ext4_invalidatepage_op, ext4_journalled_invalidatepage,
710 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
711
712 TP_ARGS(page, offset, length)
713)
714
715#else
716
b87700e3
AG
717TRACE_EVENT(ext4_invalidatepage,
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
747TRACE_EVENT(ext4_discard_blocks,
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
771DECLARE_EVENT_CLASS(ext4__mb_new_pa,
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
800DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa,
801
802 TP_PROTO(struct ext4_allocation_context *ac,
803 struct ext4_prealloc_space *pa),
804
805 TP_ARGS(ac, pa)
806)
807
808DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa,
809
810 TP_PROTO(struct ext4_allocation_context *ac,
811 struct ext4_prealloc_space *pa),
812
813 TP_ARGS(ac, pa)
814)
815
816TRACE_EVENT(ext4_mb_release_inode_pa,
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
876TRACE_EVENT(ext4_mb_release_group_pa,
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
929TRACE_EVENT(ext4_discard_preallocations,
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
950TRACE_EVENT(ext4_mb_discard_preallocations,
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
971TRACE_EVENT(ext4_request_blocks,
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
1011TRACE_EVENT(ext4_allocate_blocks,
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
1053TRACE_EVENT(ext4_free_blocks,
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))
1108TRACE_EVENT(ext4_sync_file_enter,
1109#else
1110TRACE_EVENT(ext4_sync_file,
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))
1150TRACE_EVENT(ext4_sync_file_exit,
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
1174TRACE_EVENT(ext4_sync_fs,
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
1195TRACE_EVENT(ext4_alloc_da_blocks,
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
1220TRACE_EVENT(ext4_mballoc_alloc,
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
1287TRACE_EVENT(ext4_mballoc_prealloc,
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
1327DECLARE_EVENT_CLASS(ext4__mballoc,
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
1386DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard,
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
1403DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free,
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))
1421TRACE_EVENT(ext4_forget,
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))
1450TRACE_EVENT(ext4_da_update_reserve_space,
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
1514TRACE_EVENT(ext4_da_reserve_space,
1515 TP_PROTO(struct inode *inode, int md_needed),
1516
1517 TP_ARGS(inode, md_needed),
1518
1519 TP_STRUCT__entry(
1520 __field( dev_t, dev )
1521 __field( ino_t, ino )
1522 __field( __u64, i_blocks )
1523 __field( int, md_needed )
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(md_needed, md_needed)
1534 tp_assign(reserved_data_blocks,
1535 EXT4_I(inode)->i_reserved_data_blocks)
1536 tp_assign(reserved_meta_blocks,
1537 EXT4_I(inode)->i_reserved_meta_blocks)
1538 tp_assign(mode, inode->i_mode)
1539 ),
1540
1541 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d "
1542 "reserved_data_blocks %d reserved_meta_blocks %d",
1543 MAJOR(__entry->dev), MINOR(__entry->dev),
1544 (unsigned long) __entry->ino,
1545 __entry->mode, __entry->i_blocks,
1546 __entry->md_needed, __entry->reserved_data_blocks,
1547 __entry->reserved_meta_blocks)
1548)
1549
1550TRACE_EVENT(ext4_da_release_space,
1551 TP_PROTO(struct inode *inode, int freed_blocks),
1552
1553 TP_ARGS(inode, freed_blocks),
1554
1555 TP_STRUCT__entry(
1556 __field( dev_t, dev )
1557 __field( ino_t, ino )
1558 __field( __u64, i_blocks )
1559 __field( int, freed_blocks )
1560 __field( int, reserved_data_blocks )
1561 __field( int, reserved_meta_blocks )
1562 __field( int, allocated_meta_blocks )
1563 __field( TP_MODE_T, mode )
1564 ),
1565
1566 TP_fast_assign(
1567 tp_assign(dev, inode->i_sb->s_dev)
1568 tp_assign(ino, inode->i_ino)
1569 tp_assign(i_blocks, inode->i_blocks)
1570 tp_assign(freed_blocks, freed_blocks)
1571 tp_assign(reserved_data_blocks,
1572 EXT4_I(inode)->i_reserved_data_blocks)
1573 tp_assign(reserved_meta_blocks,
1574 EXT4_I(inode)->i_reserved_meta_blocks)
1575 tp_assign(allocated_meta_blocks,
1576 EXT4_I(inode)->i_allocated_meta_blocks)
1577 tp_assign(mode, inode->i_mode)
1578 ),
1579
1580 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
1581 "reserved_data_blocks %d reserved_meta_blocks %d "
1582 "allocated_meta_blocks %d",
1583 MAJOR(__entry->dev), MINOR(__entry->dev),
1584 (unsigned long) __entry->ino,
1585 __entry->mode, __entry->i_blocks,
1586 __entry->freed_blocks, __entry->reserved_data_blocks,
1587 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
1588)
1589#endif
1590
1591#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
1592DECLARE_EVENT_CLASS(ext4__bitmap_load,
1593 TP_PROTO(struct super_block *sb, unsigned long group),
1594
1595 TP_ARGS(sb, group),
1596
1597 TP_STRUCT__entry(
1598 __field( dev_t, dev )
1599 __field( __u32, group )
1600
1601 ),
1602
1603 TP_fast_assign(
1604 tp_assign(dev, sb->s_dev)
1605 tp_assign(group, group)
1606 ),
1607
1608 TP_printk("dev %d,%d group %u",
1609 MAJOR(__entry->dev), MINOR(__entry->dev),
1610 __entry->group)
1611)
1612
1613DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load,
1614
1615 TP_PROTO(struct super_block *sb, unsigned long group),
1616
1617 TP_ARGS(sb, group)
1618)
1619
1620DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
1621
1622 TP_PROTO(struct super_block *sb, unsigned long group),
1623
1624 TP_ARGS(sb, group)
1625)
1626#endif
1627
1628#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
1629DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load,
1630
1631 TP_PROTO(struct super_block *sb, unsigned long group),
1632
1633 TP_ARGS(sb, group)
1634)
1635
1636DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
1637
1638 TP_PROTO(struct super_block *sb, unsigned long group),
1639
1640 TP_ARGS(sb, group)
1641)
1642
1643TRACE_EVENT(ext4_direct_IO_enter,
1644 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
1645
1646 TP_ARGS(inode, offset, len, rw),
1647
1648 TP_STRUCT__entry(
1649 __field( dev_t, dev )
1650 __field( ino_t, ino )
1651 __field( loff_t, pos )
1652 __field( unsigned long, len )
1653 __field( int, rw )
1654 ),
1655
1656 TP_fast_assign(
1657 tp_assign(dev, inode->i_sb->s_dev)
1658 tp_assign(ino, inode->i_ino)
1659 tp_assign(pos, offset)
1660 tp_assign(len, len)
1661 tp_assign(rw, rw)
1662 ),
1663
1664 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d",
1665 MAJOR(__entry->dev), MINOR(__entry->dev),
1666 (unsigned long) __entry->ino,
1667 __entry->pos, __entry->len, __entry->rw)
1668)
1669
1670TRACE_EVENT(ext4_direct_IO_exit,
1671 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
1672 int rw, int ret),
1673
1674 TP_ARGS(inode, offset, len, rw, ret),
1675
1676 TP_STRUCT__entry(
1677 __field( dev_t, dev )
1678 __field( ino_t, ino )
1679 __field( loff_t, pos )
1680 __field( unsigned long, len )
1681 __field( int, rw )
1682 __field( int, ret )
1683 ),
1684
1685 TP_fast_assign(
1686 tp_assign(dev, inode->i_sb->s_dev)
1687 tp_assign(ino, inode->i_ino)
1688 tp_assign(pos, offset)
1689 tp_assign(len, len)
1690 tp_assign(rw, rw)
1691 tp_assign(ret, ret)
1692 ),
1693
1694 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d",
1695 MAJOR(__entry->dev), MINOR(__entry->dev),
1696 (unsigned long) __entry->ino,
1697 __entry->pos, __entry->len,
1698 __entry->rw, __entry->ret)
1699)
1700
11af8f55
MD
1701TRACE_EVENT(ext4_fallocate_exit,
1702 TP_PROTO(struct inode *inode, loff_t offset,
1703 unsigned int max_blocks, int ret),
1704
1705 TP_ARGS(inode, offset, max_blocks, ret),
1706
1707 TP_STRUCT__entry(
1708 __field( dev_t, dev )
1709 __field( ino_t, ino )
1710 __field( loff_t, pos )
1711 __field( unsigned int, blocks )
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(blocks, max_blocks)
1720 tp_assign(ret, ret)
1721 ),
1722
1723 TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d",
1724 MAJOR(__entry->dev), MINOR(__entry->dev),
1725 (unsigned long) __entry->ino,
1726 __entry->pos, __entry->blocks,
1727 __entry->ret)
1728)
1729
1730#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
1731
1732DECLARE_EVENT_CLASS(ext4__fallocate_mode,
b87700e3
AG
1733 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1734
1735 TP_ARGS(inode, offset, len, mode),
1736
1737 TP_STRUCT__entry(
1738 __field( dev_t, dev )
1739 __field( ino_t, ino )
11af8f55
MD
1740 __field( loff_t, offset )
1741 __field( loff_t, len )
b87700e3
AG
1742 __field( int, mode )
1743 ),
1744
1745 TP_fast_assign(
1746 tp_assign(dev, inode->i_sb->s_dev)
1747 tp_assign(ino, inode->i_ino)
11af8f55 1748 tp_assign(offset, offset)
b87700e3
AG
1749 tp_assign(len, len)
1750 tp_assign(mode, mode)
1751 ),
1752
11af8f55 1753 TP_printk("dev %d,%d ino %lu offset %lld len %lld mode %s",
b87700e3 1754 MAJOR(__entry->dev), MINOR(__entry->dev),
11af8f55
MD
1755 (unsigned long) __entry->ino,
1756 __entry->offset, __entry->len,
1757 show_falloc_mode(__entry->mode))
b87700e3
AG
1758)
1759
11af8f55 1760DEFINE_EVENT(ext4__fallocate_mode, ext4_fallocate_enter,
b87700e3 1761
11af8f55
MD
1762 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1763
1764 TP_ARGS(inode, offset, len, mode)
1765)
1766
1767DEFINE_EVENT(ext4__fallocate_mode, ext4_punch_hole,
1768
1769 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1770
1771 TP_ARGS(inode, offset, len, mode)
1772)
1773
1774DEFINE_EVENT(ext4__fallocate_mode, ext4_zero_range,
1775
1776 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1777
1778 TP_ARGS(inode, offset, len, mode)
1779)
1780
1781#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
1782
1783TRACE_EVENT(ext4_fallocate_enter,
1784 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1785
1786 TP_ARGS(inode, offset, len, mode),
b87700e3
AG
1787
1788 TP_STRUCT__entry(
1789 __field( dev_t, dev )
1790 __field( ino_t, ino )
1791 __field( loff_t, pos )
11af8f55
MD
1792 __field( loff_t, len )
1793 __field( int, mode )
b87700e3
AG
1794 ),
1795
1796 TP_fast_assign(
1797 tp_assign(dev, inode->i_sb->s_dev)
1798 tp_assign(ino, inode->i_ino)
1799 tp_assign(pos, offset)
11af8f55
MD
1800 tp_assign(len, len)
1801 tp_assign(mode, mode)
b87700e3
AG
1802 ),
1803
11af8f55 1804 TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d",
b87700e3 1805 MAJOR(__entry->dev), MINOR(__entry->dev),
11af8f55
MD
1806 (unsigned long) __entry->ino, __entry->pos,
1807 __entry->len, __entry->mode)
b87700e3
AG
1808)
1809
c1b29b59
MD
1810#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1811
1812TRACE_EVENT(ext4_punch_hole,
1813 TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
1814
1815 TP_ARGS(inode, offset, len),
1816
1817 TP_STRUCT__entry(
1818 __field( dev_t, dev )
1819 __field( ino_t, ino )
1820 __field( loff_t, offset )
1821 __field( loff_t, len )
1822 ),
1823
1824 TP_fast_assign(
1825 tp_assign(dev, inode->i_sb->s_dev)
1826 tp_assign(ino, inode->i_ino)
1827 tp_assign(offset, offset)
1828 tp_assign(len, len)
1829 ),
1830
1831 TP_printk("dev %d,%d ino %lu offset %lld len %lld",
1832 MAJOR(__entry->dev), MINOR(__entry->dev),
1833 (unsigned long) __entry->ino,
1834 __entry->offset, __entry->len)
1835)
1836
11af8f55
MD
1837#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
1838
1839#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
c1b29b59 1840
b87700e3
AG
1841TRACE_EVENT(ext4_unlink_enter,
1842 TP_PROTO(struct inode *parent, struct dentry *dentry),
1843
1844 TP_ARGS(parent, dentry),
1845
1846 TP_STRUCT__entry(
1847 __field( dev_t, dev )
1848 __field( ino_t, ino )
1849 __field( ino_t, parent )
1850 __field( loff_t, size )
1851 ),
1852
1853 TP_fast_assign(
1854 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1855 tp_assign(ino, dentry->d_inode->i_ino)
1856 tp_assign(parent, parent->i_ino)
1857 tp_assign(size, dentry->d_inode->i_size)
1858 ),
1859
1860 TP_printk("dev %d,%d ino %lu size %lld parent %lu",
1861 MAJOR(__entry->dev), MINOR(__entry->dev),
1862 (unsigned long) __entry->ino, __entry->size,
1863 (unsigned long) __entry->parent)
1864)
1865
1866TRACE_EVENT(ext4_unlink_exit,
1867 TP_PROTO(struct dentry *dentry, int ret),
1868
1869 TP_ARGS(dentry, ret),
1870
1871 TP_STRUCT__entry(
1872 __field( dev_t, dev )
1873 __field( ino_t, ino )
1874 __field( int, ret )
1875 ),
1876
1877 TP_fast_assign(
1878 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1879 tp_assign(ino, dentry->d_inode->i_ino)
1880 tp_assign(ret, ret)
1881 ),
1882
1883 TP_printk("dev %d,%d ino %lu ret %d",
1884 MAJOR(__entry->dev), MINOR(__entry->dev),
1885 (unsigned long) __entry->ino,
1886 __entry->ret)
1887)
1888
1889DECLARE_EVENT_CLASS(ext4__truncate,
1890 TP_PROTO(struct inode *inode),
1891
1892 TP_ARGS(inode),
1893
1894 TP_STRUCT__entry(
1895 __field( dev_t, dev )
1896 __field( ino_t, ino )
1897 __field( __u64, blocks )
1898 ),
1899
1900 TP_fast_assign(
1901 tp_assign(dev, inode->i_sb->s_dev)
1902 tp_assign(ino, inode->i_ino)
1903 tp_assign(blocks, inode->i_blocks)
1904 ),
1905
1906 TP_printk("dev %d,%d ino %lu blocks %llu",
1907 MAJOR(__entry->dev), MINOR(__entry->dev),
1908 (unsigned long) __entry->ino, __entry->blocks)
1909)
1910
1911DEFINE_EVENT(ext4__truncate, ext4_truncate_enter,
1912
1913 TP_PROTO(struct inode *inode),
1914
1915 TP_ARGS(inode)
1916)
1917
1918DEFINE_EVENT(ext4__truncate, ext4_truncate_exit,
1919
1920 TP_PROTO(struct inode *inode),
1921
1922 TP_ARGS(inode)
1923)
1924
1925#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1926/* 'ux' is the uninitialized extent. */
1927TRACE_EVENT(ext4_ext_convert_to_initialized_enter,
1928 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1929 struct ext4_extent *ux),
1930
1931 TP_ARGS(inode, map, ux),
1932
1933 TP_STRUCT__entry(
1934 __field( dev_t, dev )
1935 __field( ino_t, ino )
1936 __field( ext4_lblk_t, m_lblk )
1937 __field( unsigned, m_len )
1938 __field( ext4_lblk_t, u_lblk )
1939 __field( unsigned, u_len )
1940 __field( ext4_fsblk_t, u_pblk )
1941 ),
1942
1943 TP_fast_assign(
1944 tp_assign(dev, inode->i_sb->s_dev)
1945 tp_assign(ino, inode->i_ino)
1946 tp_assign(m_lblk, map->m_lblk)
1947 tp_assign(m_len, map->m_len)
1948 tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
1949 tp_assign(u_len, ext4_ext_get_actual_len(ux))
1950 tp_assign(u_pblk, ext4_ext_pblock(ux))
1951 ),
1952
1953 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u "
1954 "u_pblk %llu",
1955 MAJOR(__entry->dev), MINOR(__entry->dev),
1956 (unsigned long) __entry->ino,
1957 __entry->m_lblk, __entry->m_len,
1958 __entry->u_lblk, __entry->u_len, __entry->u_pblk)
1959)
1960
1961/*
1962 * 'ux' is the uninitialized extent.
1963 * 'ix' is the initialized extent to which blocks are transferred.
1964 */
1965TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath,
1966 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1967 struct ext4_extent *ux, struct ext4_extent *ix),
1968
1969 TP_ARGS(inode, map, ux, ix),
1970
1971 TP_STRUCT__entry(
1972 __field( dev_t, dev )
1973 __field( ino_t, ino )
1974 __field( ext4_lblk_t, m_lblk )
1975 __field( unsigned, m_len )
1976 __field( ext4_lblk_t, u_lblk )
1977 __field( unsigned, u_len )
1978 __field( ext4_fsblk_t, u_pblk )
1979 __field( ext4_lblk_t, i_lblk )
1980 __field( unsigned, i_len )
1981 __field( ext4_fsblk_t, i_pblk )
1982 ),
1983
1984 TP_fast_assign(
1985 tp_assign(dev, inode->i_sb->s_dev)
1986 tp_assign(ino, inode->i_ino)
1987 tp_assign(m_lblk, map->m_lblk)
1988 tp_assign(m_len, map->m_len)
1989 tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
1990 tp_assign(u_len, ext4_ext_get_actual_len(ux))
1991 tp_assign(u_pblk, ext4_ext_pblock(ux))
1992 tp_assign(i_lblk, le32_to_cpu(ix->ee_block))
1993 tp_assign(i_len, ext4_ext_get_actual_len(ix))
1994 tp_assign(i_pblk, ext4_ext_pblock(ix))
1995 ),
1996
1997 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u "
1998 "u_lblk %u u_len %u u_pblk %llu "
1999 "i_lblk %u i_len %u i_pblk %llu ",
2000 MAJOR(__entry->dev), MINOR(__entry->dev),
2001 (unsigned long) __entry->ino,
2002 __entry->m_lblk, __entry->m_len,
2003 __entry->u_lblk, __entry->u_len, __entry->u_pblk,
2004 __entry->i_lblk, __entry->i_len, __entry->i_pblk)
2005)
2006#endif
2007
2008DECLARE_EVENT_CLASS(ext4__map_blocks_enter,
2009 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2010 unsigned int len, unsigned int flags),
2011
2012 TP_ARGS(inode, lblk, len, flags),
2013
2014 TP_STRUCT__entry(
2015 __field( dev_t, dev )
2016 __field( ino_t, ino )
2017 __field( ext4_lblk_t, lblk )
2018 __field( unsigned int, len )
2019 __field( unsigned int, flags )
2020 ),
2021
2022 TP_fast_assign(
2023 tp_assign(dev, inode->i_sb->s_dev)
2024 tp_assign(ino, inode->i_ino)
2025 tp_assign(lblk, lblk)
2026 tp_assign(len, len)
2027 tp_assign(flags, flags)
2028 ),
2029
2030 TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
2031 MAJOR(__entry->dev), MINOR(__entry->dev),
2032 (unsigned long) __entry->ino,
2033 __entry->lblk, __entry->len, __entry->flags)
2034)
2035
2036DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
2037 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2038 unsigned len, unsigned flags),
2039
2040 TP_ARGS(inode, lblk, len, flags)
2041)
2042
2043DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
2044 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2045 unsigned len, unsigned flags),
2046
2047 TP_ARGS(inode, lblk, len, flags)
2048)
2049
00be8842
MD
2050#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2051
2052DECLARE_EVENT_CLASS(ext4__map_blocks_exit,
2053 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
2054 int ret),
2055
2056 TP_ARGS(inode, flags, map, ret),
2057
2058 TP_STRUCT__entry(
2059 __field( dev_t, dev )
2060 __field( ino_t, ino )
2061 __field( unsigned int, flags )
2062 __field( ext4_fsblk_t, pblk )
2063 __field( ext4_lblk_t, lblk )
2064 __field( unsigned int, len )
2065 __field( unsigned int, mflags )
2066 __field( int, ret )
2067 ),
2068
2069 TP_fast_assign(
2070 tp_assign(dev, inode->i_sb->s_dev)
2071 tp_assign(ino, inode->i_ino)
2072 tp_assign(flags, flags)
2073 tp_assign(pblk, map->m_pblk)
2074 tp_assign(lblk, map->m_lblk)
2075 tp_assign(len, map->m_len)
2076 tp_assign(mflags, map->m_flags)
2077 tp_assign(ret, ret)
2078 ),
2079
2080 TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u "
2081 "mflags %s ret %d",
2082 MAJOR(__entry->dev), MINOR(__entry->dev),
2083 (unsigned long) __entry->ino,
2084 show_map_flags(__entry->flags), __entry->lblk, __entry->pblk,
2085 __entry->len, show_mflags(__entry->mflags), __entry->ret)
2086)
2087
2088DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
2089 TP_PROTO(struct inode *inode, unsigned flags,
2090 struct ext4_map_blocks *map, int ret),
2091
2092 TP_ARGS(inode, flags, map, ret)
2093)
2094
2095DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
2096 TP_PROTO(struct inode *inode, unsigned flags,
2097 struct ext4_map_blocks *map, int ret),
2098
2099 TP_ARGS(inode, flags, map, ret)
2100)
2101
2102#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
162774b4
MD
2103
2104DECLARE_EVENT_CLASS(ext4__map_blocks_exit,
2105 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2106
2107 TP_ARGS(inode, map, ret),
2108
2109 TP_STRUCT__entry(
2110 __field( dev_t, dev )
2111 __field( ino_t, ino )
2112 __field( ext4_fsblk_t, pblk )
2113 __field( ext4_lblk_t, lblk )
2114 __field( unsigned int, len )
2115 __field( unsigned int, flags )
2116 __field( int, ret )
2117 ),
2118
2119 TP_fast_assign(
2120 tp_assign(dev, inode->i_sb->s_dev)
2121 tp_assign(ino, inode->i_ino)
2122 tp_assign(pblk, map->m_pblk)
2123 tp_assign(lblk, map->m_lblk)
2124 tp_assign(len, map->m_len)
2125 tp_assign(flags, map->m_flags)
2126 tp_assign(ret, ret)
2127 ),
2128
2129 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d",
2130 MAJOR(__entry->dev), MINOR(__entry->dev),
2131 (unsigned long) __entry->ino,
2132 __entry->lblk, __entry->pblk,
2133 __entry->len, __entry->flags, __entry->ret)
2134)
2135
2136DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
2137 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2138
2139 TP_ARGS(inode, map, ret)
2140)
2141
2142DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
2143 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2144
2145 TP_ARGS(inode, map, ret)
2146)
2147
2148#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2149
b87700e3
AG
2150DECLARE_EVENT_CLASS(ext4__map_blocks_exit,
2151 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2152 ext4_fsblk_t pblk, unsigned int len, int ret),
2153
2154 TP_ARGS(inode, lblk, pblk, len, ret),
2155
2156 TP_STRUCT__entry(
2157 __field( dev_t, dev )
2158 __field( ino_t, ino )
2159 __field( ext4_fsblk_t, pblk )
2160 __field( ext4_lblk_t, lblk )
2161 __field( unsigned int, len )
2162 __field( int, ret )
2163 ),
2164
2165 TP_fast_assign(
2166 tp_assign(dev, inode->i_sb->s_dev)
2167 tp_assign(ino, inode->i_ino)
2168 tp_assign(pblk, pblk)
2169 tp_assign(lblk, lblk)
2170 tp_assign(len, len)
2171 tp_assign(ret, ret)
2172 ),
2173
2174 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d",
2175 MAJOR(__entry->dev), MINOR(__entry->dev),
2176 (unsigned long) __entry->ino,
2177 __entry->lblk, __entry->pblk,
2178 __entry->len, __entry->ret)
2179)
2180
2181DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
2182 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2183 ext4_fsblk_t pblk, unsigned len, int ret),
2184
2185 TP_ARGS(inode, lblk, pblk, len, ret)
2186)
2187
2188DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
2189 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2190 ext4_fsblk_t pblk, unsigned len, int ret),
2191
2192 TP_ARGS(inode, lblk, pblk, len, ret)
2193)
2194
162774b4
MD
2195#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2196
b87700e3
AG
2197TRACE_EVENT(ext4_ext_load_extent,
2198 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
2199
2200 TP_ARGS(inode, lblk, pblk),
2201
2202 TP_STRUCT__entry(
2203 __field( dev_t, dev )
2204 __field( ino_t, ino )
2205 __field( ext4_fsblk_t, pblk )
2206 __field( ext4_lblk_t, lblk )
2207 ),
2208
2209 TP_fast_assign(
2210 tp_assign(dev, inode->i_sb->s_dev)
2211 tp_assign(ino, inode->i_ino)
2212 tp_assign(pblk, pblk)
2213 tp_assign(lblk, lblk)
2214 ),
2215
2216 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
2217 MAJOR(__entry->dev), MINOR(__entry->dev),
2218 (unsigned long) __entry->ino,
2219 __entry->lblk, __entry->pblk)
2220)
2221
2222TRACE_EVENT(ext4_load_inode,
2223 TP_PROTO(struct inode *inode),
2224
2225 TP_ARGS(inode),
2226
2227 TP_STRUCT__entry(
2228 __field( dev_t, dev )
2229 __field( ino_t, ino )
2230 ),
2231
2232 TP_fast_assign(
2233 tp_assign(dev, inode->i_sb->s_dev)
2234 tp_assign(ino, inode->i_ino)
2235 ),
2236
2237 TP_printk("dev %d,%d ino %ld",
2238 MAJOR(__entry->dev), MINOR(__entry->dev),
2239 (unsigned long) __entry->ino)
2240)
2241#endif
2242
00be8842
MD
2243#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2244
2245TRACE_EVENT(ext4_journal_start,
2246 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
2247 unsigned long IP),
2248
2249 TP_ARGS(sb, blocks, rsv_blocks, IP),
2250
2251 TP_STRUCT__entry(
2252 __field( dev_t, dev )
2253 __field(unsigned long, ip )
2254 __field( int, blocks )
2255 __field( int, rsv_blocks )
2256 ),
2257
2258 TP_fast_assign(
2259 tp_assign(dev, sb->s_dev)
2260 tp_assign(ip, IP)
2261 tp_assign(blocks, blocks)
2262 tp_assign(rsv_blocks, rsv_blocks)
2263 ),
2264
2265 TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF",
2266 MAJOR(__entry->dev), MINOR(__entry->dev),
2267 __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip)
2268)
2269
2270TRACE_EVENT(ext4_journal_start_reserved,
2271 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
2272
2273 TP_ARGS(sb, blocks, IP),
2274
2275 TP_STRUCT__entry(
2276 __field( dev_t, dev )
2277 __field(unsigned long, ip )
2278 __field( int, blocks )
2279 ),
2280
2281 TP_fast_assign(
2282 tp_assign(dev, sb->s_dev)
2283 tp_assign(ip, IP)
2284 tp_assign(blocks, blocks)
2285 ),
2286
2287 TP_printk("dev %d,%d blocks, %d caller %pF",
2288 MAJOR(__entry->dev), MINOR(__entry->dev),
2289 __entry->blocks, (void *)__entry->ip)
2290)
2291
2292#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
2293
b87700e3
AG
2294TRACE_EVENT(ext4_journal_start,
2295 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
2296
2297 TP_ARGS(sb, nblocks, IP),
2298
2299 TP_STRUCT__entry(
2300 __field( dev_t, dev )
2301 __field(unsigned long, ip )
2302 __field( int, nblocks )
2303 ),
2304
2305 TP_fast_assign(
2306 tp_assign(dev, sb->s_dev)
2307 tp_assign(ip, IP)
2308 tp_assign(nblocks, nblocks)
2309 ),
2310
2311 TP_printk("dev %d,%d nblocks %d caller %pF",
2312 MAJOR(__entry->dev), MINOR(__entry->dev),
2313 __entry->nblocks, (void *)__entry->ip)
2314)
2315
2316DECLARE_EVENT_CLASS(ext4__trim,
2317 TP_PROTO(struct super_block *sb,
2318 ext4_group_t group,
2319 ext4_grpblk_t start,
2320 ext4_grpblk_t len),
2321
2322 TP_ARGS(sb, group, start, len),
2323
2324 TP_STRUCT__entry(
2325 __field( int, dev_major )
2326 __field( int, dev_minor )
2327 __field( __u32, group )
2328 __field( int, start )
2329 __field( int, len )
2330 ),
2331
2332 TP_fast_assign(
2333 tp_assign(dev_major, MAJOR(sb->s_dev))
2334 tp_assign(dev_minor, MINOR(sb->s_dev))
2335 tp_assign(group, group)
2336 tp_assign(start, start)
2337 tp_assign(len, len)
2338 ),
2339
2340 TP_printk("dev %d,%d group %u, start %d, len %d",
2341 __entry->dev_major, __entry->dev_minor,
2342 __entry->group, __entry->start, __entry->len)
2343)
2344
2345DEFINE_EVENT(ext4__trim, ext4_trim_extent,
2346
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
2355DEFINE_EVENT(ext4__trim, ext4_trim_all_free,
2356
2357 TP_PROTO(struct super_block *sb,
2358 ext4_group_t group,
2359 ext4_grpblk_t start,
2360 ext4_grpblk_t len),
2361
2362 TP_ARGS(sb, group, start, len)
2363)
2364#endif
2365
2366#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
162774b4 2367
b87700e3 2368TRACE_EVENT(ext4_ext_handle_uninitialized_extents,
162774b4
MD
2369#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2370 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
2371 unsigned int allocated, ext4_fsblk_t newblock),
2372
2373 TP_ARGS(inode, map, flags, allocated, newblock),
2374#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
2375 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
2376 unsigned int allocated, ext4_fsblk_t newblock),
2377
2378 TP_ARGS(inode, map, allocated, newblock),
162774b4 2379#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
2380
2381 TP_STRUCT__entry(
2382 __field( dev_t, dev )
2383 __field( ino_t, ino )
2384 __field( int, flags )
2385 __field( ext4_lblk_t, lblk )
2386 __field( ext4_fsblk_t, pblk )
2387 __field( unsigned int, len )
2388 __field( unsigned int, allocated )
2389 __field( ext4_fsblk_t, newblk )
2390 ),
2391
2392 TP_fast_assign(
2393 tp_assign(dev, inode->i_sb->s_dev)
2394 tp_assign(ino, inode->i_ino)
162774b4
MD
2395#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2396 tp_assign(flags, flags)
2397#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3 2398 tp_assign(flags, map->m_flags)
162774b4 2399#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
b87700e3
AG
2400 tp_assign(lblk, map->m_lblk)
2401 tp_assign(pblk, map->m_pblk)
2402 tp_assign(len, map->m_len)
2403 tp_assign(allocated, allocated)
2404 tp_assign(newblk, newblock)
2405 ),
2406
2407 TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d"
2408 "allocated %d newblock %llu",
2409 MAJOR(__entry->dev), MINOR(__entry->dev),
2410 (unsigned long) __entry->ino,
2411 (unsigned) __entry->lblk, (unsigned long long) __entry->pblk,
2412 __entry->len, __entry->flags,
2413 (unsigned int) __entry->allocated,
2414 (unsigned long long) __entry->newblk)
2415)
2416
2417TRACE_EVENT(ext4_get_implied_cluster_alloc_exit,
2418 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
2419
2420 TP_ARGS(sb, map, ret),
2421
2422 TP_STRUCT__entry(
2423 __field( dev_t, dev )
2424 __field( unsigned int, flags )
2425 __field( ext4_lblk_t, lblk )
2426 __field( ext4_fsblk_t, pblk )
2427 __field( unsigned int, len )
2428 __field( int, ret )
2429 ),
2430
2431 TP_fast_assign(
2432 tp_assign(dev, sb->s_dev)
2433 tp_assign(flags, map->m_flags)
2434 tp_assign(lblk, map->m_lblk)
2435 tp_assign(pblk, map->m_pblk)
2436 tp_assign(len, map->m_len)
2437 tp_assign(ret, ret)
2438 ),
2439
2440 TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d",
2441 MAJOR(__entry->dev), MINOR(__entry->dev),
2442 __entry->lblk, (unsigned long long) __entry->pblk,
2443 __entry->len, __entry->flags, __entry->ret)
2444)
2445
2446TRACE_EVENT(ext4_ext_put_in_cache,
2447 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
2448 ext4_fsblk_t start),
2449
2450 TP_ARGS(inode, lblk, len, start),
2451
2452 TP_STRUCT__entry(
2453 __field( dev_t, dev )
2454 __field( ino_t, ino )
2455 __field( ext4_lblk_t, lblk )
2456 __field( unsigned int, len )
2457 __field( ext4_fsblk_t, start )
2458 ),
2459
2460 TP_fast_assign(
2461 tp_assign(dev, inode->i_sb->s_dev)
2462 tp_assign(ino, inode->i_ino)
2463 tp_assign(lblk, lblk)
2464 tp_assign(len, len)
2465 tp_assign(start, start)
2466 ),
2467
2468 TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu",
2469 MAJOR(__entry->dev), MINOR(__entry->dev),
2470 (unsigned long) __entry->ino,
2471 (unsigned) __entry->lblk,
2472 __entry->len,
2473 (unsigned long long) __entry->start)
2474)
2475
2476TRACE_EVENT(ext4_ext_in_cache,
2477 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
2478
2479 TP_ARGS(inode, lblk, ret),
2480
2481 TP_STRUCT__entry(
2482 __field( dev_t, dev )
2483 __field( ino_t, ino )
2484 __field( ext4_lblk_t, lblk )
2485 __field( int, ret )
2486 ),
2487
2488 TP_fast_assign(
2489 tp_assign(dev, inode->i_sb->s_dev)
2490 tp_assign(ino, inode->i_ino)
2491 tp_assign(lblk, lblk)
2492 tp_assign(ret, ret)
2493 ),
2494
2495 TP_printk("dev %d,%d ino %lu lblk %u ret %d",
2496 MAJOR(__entry->dev), MINOR(__entry->dev),
2497 (unsigned long) __entry->ino,
2498 (unsigned) __entry->lblk,
2499 __entry->ret)
2500
2501)
2502
2503TRACE_EVENT(ext4_find_delalloc_range,
2504 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
2505 int reverse, int found, ext4_lblk_t found_blk),
2506
2507 TP_ARGS(inode, from, to, reverse, found, found_blk),
2508
2509 TP_STRUCT__entry(
2510 __field( dev_t, dev )
2511 __field( ino_t, ino )
2512 __field( ext4_lblk_t, from )
2513 __field( ext4_lblk_t, to )
2514 __field( int, reverse )
2515 __field( int, found )
2516 __field( ext4_lblk_t, found_blk )
2517 ),
2518
2519 TP_fast_assign(
2520 tp_assign(dev, inode->i_sb->s_dev)
2521 tp_assign(ino, inode->i_ino)
2522 tp_assign(from, from)
2523 tp_assign(to, to)
2524 tp_assign(reverse, reverse)
2525 tp_assign(found, found)
2526 tp_assign(found_blk, found_blk)
2527 ),
2528
2529 TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d "
2530 "(blk = %u)",
2531 MAJOR(__entry->dev), MINOR(__entry->dev),
2532 (unsigned long) __entry->ino,
2533 (unsigned) __entry->from, (unsigned) __entry->to,
2534 __entry->reverse, __entry->found,
2535 (unsigned) __entry->found_blk)
2536)
2537
2538TRACE_EVENT(ext4_get_reserved_cluster_alloc,
2539 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
2540
2541 TP_ARGS(inode, lblk, len),
2542
2543 TP_STRUCT__entry(
2544 __field( dev_t, dev )
2545 __field( ino_t, ino )
2546 __field( ext4_lblk_t, lblk )
2547 __field( unsigned int, len )
2548 ),
2549
2550 TP_fast_assign(
2551 tp_assign(dev, inode->i_sb->s_dev)
2552 tp_assign(ino, inode->i_ino)
2553 tp_assign(lblk, lblk)
2554 tp_assign(len, len)
2555 ),
2556
2557 TP_printk("dev %d,%d ino %lu lblk %u len %u",
2558 MAJOR(__entry->dev), MINOR(__entry->dev),
2559 (unsigned long) __entry->ino,
2560 (unsigned) __entry->lblk,
2561 __entry->len)
2562)
2563
2564TRACE_EVENT(ext4_ext_show_extent,
2565 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
2566 unsigned short len),
2567
2568 TP_ARGS(inode, lblk, pblk, len),
2569
2570 TP_STRUCT__entry(
2571 __field( dev_t, dev )
2572 __field( ino_t, ino )
2573 __field( ext4_fsblk_t, pblk )
2574 __field( ext4_lblk_t, lblk )
2575 __field( unsigned short, len )
2576 ),
2577
2578 TP_fast_assign(
2579 tp_assign(dev, inode->i_sb->s_dev)
2580 tp_assign(ino, inode->i_ino)
2581 tp_assign(pblk, pblk)
2582 tp_assign(lblk, lblk)
2583 tp_assign(len, len)
2584 ),
2585
2586 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u",
2587 MAJOR(__entry->dev), MINOR(__entry->dev),
2588 (unsigned long) __entry->ino,
2589 (unsigned) __entry->lblk,
2590 (unsigned long long) __entry->pblk,
2591 (unsigned short) __entry->len)
2592)
2593
00be8842
MD
2594#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2595
2596TRACE_EVENT(ext4_remove_blocks,
2597 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
2598 ext4_lblk_t from, ext4_fsblk_t to,
2599 long long partial_cluster),
2600
2601 TP_ARGS(inode, ex, from, to, partial_cluster),
2602
2603 TP_STRUCT__entry(
2604 __field( dev_t, dev )
2605 __field( ino_t, ino )
2606 __field( ext4_lblk_t, from )
2607 __field( ext4_lblk_t, to )
2608 __field( long long, partial )
2609 __field( ext4_fsblk_t, ee_pblk )
2610 __field( ext4_lblk_t, ee_lblk )
2611 __field( unsigned short, ee_len )
2612 ),
2613
2614 TP_fast_assign(
2615 tp_assign(dev, inode->i_sb->s_dev)
2616 tp_assign(ino, inode->i_ino)
2617 tp_assign(from, from)
2618 tp_assign(to, to)
2619 tp_assign(partial, partial_cluster)
2620 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2621 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2622 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2623 ),
2624
2625 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
2626 "from %u to %u partial_cluster %lld",
2627 MAJOR(__entry->dev), MINOR(__entry->dev),
2628 (unsigned long) __entry->ino,
2629 (unsigned) __entry->ee_lblk,
2630 (unsigned long long) __entry->ee_pblk,
2631 (unsigned short) __entry->ee_len,
2632 (unsigned) __entry->from,
2633 (unsigned) __entry->to,
2634 (long long) __entry->partial)
2635)
2636
2637#else
2638
b87700e3
AG
2639TRACE_EVENT(ext4_remove_blocks,
2640 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
2641 ext4_lblk_t from, ext4_fsblk_t to,
2642 ext4_fsblk_t partial_cluster),
2643
2644 TP_ARGS(inode, ex, from, to, partial_cluster),
2645
2646 TP_STRUCT__entry(
2647 __field( dev_t, dev )
2648 __field( ino_t, ino )
2649 __field( ext4_lblk_t, from )
2650 __field( ext4_lblk_t, to )
2651 __field( ext4_fsblk_t, partial )
2652 __field( ext4_fsblk_t, ee_pblk )
2653 __field( ext4_lblk_t, ee_lblk )
2654 __field( unsigned short, ee_len )
2655 ),
2656
2657 TP_fast_assign(
2658 tp_assign(dev, inode->i_sb->s_dev)
2659 tp_assign(ino, inode->i_ino)
2660 tp_assign(from, from)
2661 tp_assign(to, to)
2662 tp_assign(partial, partial_cluster)
2663 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2664 tp_assign(ee_lblk, cpu_to_le32(ex->ee_block))
2665 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2666 ),
2667
2668 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
2669 "from %u to %u partial_cluster %u",
2670 MAJOR(__entry->dev), MINOR(__entry->dev),
2671 (unsigned long) __entry->ino,
2672 (unsigned) __entry->ee_lblk,
2673 (unsigned long long) __entry->ee_pblk,
2674 (unsigned short) __entry->ee_len,
2675 (unsigned) __entry->from,
2676 (unsigned) __entry->to,
2677 (unsigned) __entry->partial)
2678)
2679
00be8842
MD
2680#endif
2681
2682#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2683
2684TRACE_EVENT(ext4_ext_rm_leaf,
2685 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2686 struct ext4_extent *ex,
2687 long long partial_cluster),
2688
2689 TP_ARGS(inode, start, ex, partial_cluster),
2690
2691 TP_STRUCT__entry(
2692 __field( dev_t, dev )
2693 __field( ino_t, ino )
2694 __field( long long, partial )
2695 __field( ext4_lblk_t, start )
2696 __field( ext4_lblk_t, ee_lblk )
2697 __field( ext4_fsblk_t, ee_pblk )
2698 __field( short, ee_len )
2699 ),
2700
2701 TP_fast_assign(
2702 tp_assign(dev, inode->i_sb->s_dev)
2703 tp_assign(ino, inode->i_ino)
2704 tp_assign(partial, partial_cluster)
2705 tp_assign(start, start)
2706 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2707 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2708 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2709 ),
2710
2711 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
2712 "partial_cluster %lld",
2713 MAJOR(__entry->dev), MINOR(__entry->dev),
2714 (unsigned long) __entry->ino,
2715 (unsigned) __entry->start,
2716 (unsigned) __entry->ee_lblk,
2717 (unsigned long long) __entry->ee_pblk,
2718 (unsigned short) __entry->ee_len,
2719 (long long) __entry->partial)
2720)
2721
2722#else
2723
b87700e3
AG
2724TRACE_EVENT(ext4_ext_rm_leaf,
2725 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2726 struct ext4_extent *ex, ext4_fsblk_t partial_cluster),
2727
2728 TP_ARGS(inode, start, ex, partial_cluster),
2729
2730 TP_STRUCT__entry(
2731 __field( dev_t, dev )
2732 __field( ino_t, ino )
2733 __field( ext4_fsblk_t, partial )
2734 __field( ext4_lblk_t, start )
2735 __field( ext4_lblk_t, ee_lblk )
2736 __field( ext4_fsblk_t, ee_pblk )
2737 __field( short, ee_len )
2738 ),
2739
2740 TP_fast_assign(
2741 tp_assign(dev, inode->i_sb->s_dev)
2742 tp_assign(ino, inode->i_ino)
2743 tp_assign(partial, partial_cluster)
2744 tp_assign(start, start)
2745 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2746 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2747 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2748 ),
2749
2750 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
2751 "partial_cluster %u",
2752 MAJOR(__entry->dev), MINOR(__entry->dev),
2753 (unsigned long) __entry->ino,
2754 (unsigned) __entry->start,
2755 (unsigned) __entry->ee_lblk,
2756 (unsigned long long) __entry->ee_pblk,
2757 (unsigned short) __entry->ee_len,
2758 (unsigned) __entry->partial)
2759)
2760
00be8842
MD
2761#endif
2762
b87700e3
AG
2763TRACE_EVENT(ext4_ext_rm_idx,
2764 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
2765
2766 TP_ARGS(inode, pblk),
2767
2768 TP_STRUCT__entry(
2769 __field( dev_t, dev )
2770 __field( ino_t, ino )
2771 __field( ext4_fsblk_t, pblk )
2772 ),
2773
2774 TP_fast_assign(
2775 tp_assign(dev, inode->i_sb->s_dev)
2776 tp_assign(ino, inode->i_ino)
2777 tp_assign(pblk, pblk)
2778 ),
2779
2780 TP_printk("dev %d,%d ino %lu index_pblk %llu",
2781 MAJOR(__entry->dev), MINOR(__entry->dev),
2782 (unsigned long) __entry->ino,
2783 (unsigned long long) __entry->pblk)
2784)
2785
00be8842
MD
2786#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2787
2788TRACE_EVENT(ext4_ext_remove_space,
2789 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2790 ext4_lblk_t end, int depth),
2791
2792 TP_ARGS(inode, start, end, depth),
2793
2794 TP_STRUCT__entry(
2795 __field( dev_t, dev )
2796 __field( ino_t, ino )
2797 __field( ext4_lblk_t, start )
2798 __field( ext4_lblk_t, end )
2799 __field( int, depth )
2800 ),
2801
2802 TP_fast_assign(
2803 tp_assign(dev, inode->i_sb->s_dev)
2804 tp_assign(ino, inode->i_ino)
2805 tp_assign(start, start)
2806 tp_assign(end, end)
2807 tp_assign(depth, depth)
2808 ),
2809
2810 TP_printk("dev %d,%d ino %lu since %u end %u depth %d",
2811 MAJOR(__entry->dev), MINOR(__entry->dev),
2812 (unsigned long) __entry->ino,
2813 (unsigned) __entry->start,
2814 (unsigned) __entry->end,
2815 __entry->depth)
2816)
2817
2818#else
2819
b87700e3
AG
2820TRACE_EVENT(ext4_ext_remove_space,
2821 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth),
2822
2823 TP_ARGS(inode, start, depth),
2824
2825 TP_STRUCT__entry(
2826 __field( dev_t, dev )
2827 __field( ino_t, ino )
2828 __field( ext4_lblk_t, start )
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(depth, depth)
2837 ),
2838
2839 TP_printk("dev %d,%d ino %lu since %u depth %d",
2840 MAJOR(__entry->dev), MINOR(__entry->dev),
2841 (unsigned long) __entry->ino,
2842 (unsigned) __entry->start,
2843 __entry->depth)
2844)
2845
00be8842
MD
2846#endif
2847
2848#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2849
2850TRACE_EVENT(ext4_ext_remove_space_done,
2851 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
2852 int depth, long long partial, __le16 eh_entries),
2853
2854 TP_ARGS(inode, start, end, depth, partial, eh_entries),
2855
2856 TP_STRUCT__entry(
2857 __field( dev_t, dev )
2858 __field( ino_t, ino )
2859 __field( ext4_lblk_t, start )
2860 __field( ext4_lblk_t, end )
2861 __field( int, depth )
2862 __field( long long, partial )
2863 __field( unsigned short, eh_entries )
2864 ),
2865
2866 TP_fast_assign(
2867 tp_assign(dev, inode->i_sb->s_dev)
2868 tp_assign(ino, inode->i_ino)
2869 tp_assign(start, start)
2870 tp_assign(end, end)
2871 tp_assign(depth, depth)
2872 tp_assign(partial, partial)
2873 tp_assign(eh_entries, le16_to_cpu(eh_entries))
2874 ),
2875
2876 TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld "
2877 "remaining_entries %u",
2878 MAJOR(__entry->dev), MINOR(__entry->dev),
2879 (unsigned long) __entry->ino,
2880 (unsigned) __entry->start,
2881 (unsigned) __entry->end,
2882 __entry->depth,
2883 (long long) __entry->partial,
2884 (unsigned short) __entry->eh_entries)
2885)
2886
2887#else
2888
b87700e3
AG
2889TRACE_EVENT(ext4_ext_remove_space_done,
2890 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth,
2891 ext4_lblk_t partial, unsigned short eh_entries),
2892
2893 TP_ARGS(inode, start, depth, partial, eh_entries),
2894
2895 TP_STRUCT__entry(
2896 __field( dev_t, dev )
2897 __field( ino_t, ino )
2898 __field( ext4_lblk_t, start )
2899 __field( int, depth )
2900 __field( ext4_lblk_t, partial )
2901 __field( unsigned short, eh_entries )
2902 ),
2903
2904 TP_fast_assign(
2905 tp_assign(dev, inode->i_sb->s_dev)
2906 tp_assign(ino, inode->i_ino)
2907 tp_assign(start, start)
2908 tp_assign(depth, depth)
2909 tp_assign(partial, partial)
2910 tp_assign(eh_entries, eh_entries)
2911 ),
2912
2913 TP_printk("dev %d,%d ino %lu since %u depth %d partial %u "
2914 "remaining_entries %u",
2915 MAJOR(__entry->dev), MINOR(__entry->dev),
2916 (unsigned long) __entry->ino,
2917 (unsigned) __entry->start,
2918 __entry->depth,
2919 (unsigned) __entry->partial,
2920 (unsigned short) __entry->eh_entries)
2921)
00be8842
MD
2922
2923#endif
2924
2925#endif
2926
39aee4a0
MD
2927#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
2928
2929DECLARE_EVENT_CLASS(ext4__es_extent,
2930 TP_PROTO(struct inode *inode, struct extent_status *es),
2931
2932 TP_ARGS(inode, es),
2933
2934 TP_STRUCT__entry(
2935 __field( dev_t, dev )
2936 __field( ino_t, ino )
2937 __field( ext4_lblk_t, lblk )
2938 __field( ext4_lblk_t, len )
2939 __field( ext4_fsblk_t, pblk )
2940 __field( char, status )
2941 ),
2942
2943 TP_fast_assign(
2944 tp_assign(dev, inode->i_sb->s_dev)
2945 tp_assign(ino, inode->i_ino)
2946 tp_assign(lblk, es->es_lblk)
2947 tp_assign(len, es->es_len)
2948 tp_assign(pblk, ext4_es_pblock(es))
2949 tp_assign(status, ext4_es_status(es))
2950 ),
2951
2952 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
2953 MAJOR(__entry->dev), MINOR(__entry->dev),
2954 (unsigned long) __entry->ino,
2955 __entry->lblk, __entry->len,
2956 __entry->pblk, show_extent_status(__entry->status))
2957)
2958
2959DEFINE_EVENT(ext4__es_extent, ext4_es_insert_extent,
2960 TP_PROTO(struct inode *inode, struct extent_status *es),
2961
2962 TP_ARGS(inode, es)
2963)
2964
2965DEFINE_EVENT(ext4__es_extent, ext4_es_cache_extent,
2966 TP_PROTO(struct inode *inode, struct extent_status *es),
2967
2968 TP_ARGS(inode, es)
2969)
2970
2971#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
00be8842
MD
2972
2973TRACE_EVENT(ext4_es_insert_extent,
2974 TP_PROTO(struct inode *inode, struct extent_status *es),
2975
2976 TP_ARGS(inode, es),
2977
2978 TP_STRUCT__entry(
2979 __field( dev_t, dev )
2980 __field( ino_t, ino )
2981 __field( ext4_lblk_t, lblk )
2982 __field( ext4_lblk_t, len )
2983 __field( ext4_fsblk_t, pblk )
2984 __field( char, status )
2985 ),
2986
2987 TP_fast_assign(
2988 tp_assign(dev, inode->i_sb->s_dev)
2989 tp_assign(ino, inode->i_ino)
2990 tp_assign(lblk, es->es_lblk)
2991 tp_assign(len, es->es_len)
2992 tp_assign(pblk, ext4_es_pblock(es))
2993 tp_assign(status, ext4_es_status(es) >> 60)
2994 ),
2995
2996 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
2997 MAJOR(__entry->dev), MINOR(__entry->dev),
2998 (unsigned long) __entry->ino,
2999 __entry->lblk, __entry->len,
3000 __entry->pblk, show_extent_status(__entry->status))
3001)
3002
3003TRACE_EVENT(ext4_es_remove_extent,
3004 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len),
3005
3006 TP_ARGS(inode, lblk, len),
3007
3008 TP_STRUCT__entry(
3009 __field( dev_t, dev )
3010 __field( ino_t, ino )
3011 __field( loff_t, lblk )
3012 __field( loff_t, len )
3013 ),
3014
3015 TP_fast_assign(
3016 tp_assign(dev, inode->i_sb->s_dev)
3017 tp_assign(ino, inode->i_ino)
3018 tp_assign(lblk, lblk)
3019 tp_assign(len, len)
3020 ),
3021
3022 TP_printk("dev %d,%d ino %lu es [%lld/%lld)",
3023 MAJOR(__entry->dev), MINOR(__entry->dev),
3024 (unsigned long) __entry->ino,
3025 __entry->lblk, __entry->len)
3026)
3027
3028TRACE_EVENT(ext4_es_find_delayed_extent_range_enter,
3029 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
3030
3031 TP_ARGS(inode, lblk),
3032
3033 TP_STRUCT__entry(
3034 __field( dev_t, dev )
3035 __field( ino_t, ino )
3036 __field( ext4_lblk_t, lblk )
3037 ),
3038
3039 TP_fast_assign(
3040 tp_assign(dev, inode->i_sb->s_dev)
3041 tp_assign(ino, inode->i_ino)
3042 tp_assign(lblk, lblk)
3043 ),
3044
3045 TP_printk("dev %d,%d ino %lu lblk %u",
3046 MAJOR(__entry->dev), MINOR(__entry->dev),
3047 (unsigned long) __entry->ino, __entry->lblk)
3048)
3049
3050TRACE_EVENT(ext4_es_find_delayed_extent_range_exit,
3051 TP_PROTO(struct inode *inode, struct extent_status *es),
3052
3053 TP_ARGS(inode, es),
3054
3055 TP_STRUCT__entry(
3056 __field( dev_t, dev )
3057 __field( ino_t, ino )
3058 __field( ext4_lblk_t, lblk )
3059 __field( ext4_lblk_t, len )
3060 __field( ext4_fsblk_t, pblk )
3061 __field( char, status )
3062 ),
3063
3064 TP_fast_assign(
3065 tp_assign(dev, inode->i_sb->s_dev)
3066 tp_assign(ino, inode->i_ino)
3067 tp_assign(lblk, es->es_lblk)
3068 tp_assign(len, es->es_len)
3069 tp_assign(pblk, ext4_es_pblock(es))
3070 tp_assign(status, ext4_es_status(es) >> 60)
3071 ),
3072
3073 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
3074 MAJOR(__entry->dev), MINOR(__entry->dev),
3075 (unsigned long) __entry->ino,
3076 __entry->lblk, __entry->len,
3077 __entry->pblk, show_extent_status(__entry->status))
3078)
3079
3080TRACE_EVENT(ext4_es_lookup_extent_enter,
3081 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
3082
3083 TP_ARGS(inode, lblk),
3084
3085 TP_STRUCT__entry(
3086 __field( dev_t, dev )
3087 __field( ino_t, ino )
3088 __field( ext4_lblk_t, lblk )
3089 ),
3090
3091 TP_fast_assign(
3092 tp_assign(dev, inode->i_sb->s_dev)
3093 tp_assign(ino, inode->i_ino)
3094 tp_assign(lblk, lblk)
3095 ),
3096
3097 TP_printk("dev %d,%d ino %lu lblk %u",
3098 MAJOR(__entry->dev), MINOR(__entry->dev),
3099 (unsigned long) __entry->ino, __entry->lblk)
3100)
3101
3102TRACE_EVENT(ext4_es_lookup_extent_exit,
3103 TP_PROTO(struct inode *inode, struct extent_status *es,
3104 int found),
3105
3106 TP_ARGS(inode, es, found),
3107
3108 TP_STRUCT__entry(
3109 __field( dev_t, dev )
3110 __field( ino_t, ino )
3111 __field( ext4_lblk_t, lblk )
3112 __field( ext4_lblk_t, len )
3113 __field( ext4_fsblk_t, pblk )
3114 __field( char, status )
3115 __field( int, found )
3116 ),
3117
3118 TP_fast_assign(
3119 tp_assign(dev, inode->i_sb->s_dev)
3120 tp_assign(ino, inode->i_ino)
3121 tp_assign(lblk, es->es_lblk)
3122 tp_assign(len, es->es_len)
3123 tp_assign(pblk, ext4_es_pblock(es))
3124 tp_assign(status, ext4_es_status(es) >> 60)
3125 tp_assign(found, found)
3126 ),
3127
3128 TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s",
3129 MAJOR(__entry->dev), MINOR(__entry->dev),
3130 (unsigned long) __entry->ino, __entry->found,
3131 __entry->lblk, __entry->len,
3132 __entry->found ? __entry->pblk : 0,
3133 show_extent_status(__entry->found ? __entry->status : 0))
3134)
3135
3136TRACE_EVENT(ext4_es_shrink_enter,
3137 TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt),
3138
3139 TP_ARGS(sb, nr_to_scan, cache_cnt),
3140
3141 TP_STRUCT__entry(
3142 __field( dev_t, dev )
3143 __field( int, nr_to_scan )
3144 __field( int, cache_cnt )
3145 ),
3146
3147 TP_fast_assign(
3148 tp_assign(dev, sb->s_dev)
3149 tp_assign(nr_to_scan, nr_to_scan)
3150 tp_assign(cache_cnt, cache_cnt)
3151 ),
3152
3153 TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d",
3154 MAJOR(__entry->dev), MINOR(__entry->dev),
3155 __entry->nr_to_scan, __entry->cache_cnt)
3156)
3157
3158TRACE_EVENT(ext4_es_shrink_exit,
3159 TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt),
3160
3161 TP_ARGS(sb, shrunk_nr, cache_cnt),
3162
3163 TP_STRUCT__entry(
3164 __field( dev_t, dev )
3165 __field( int, shrunk_nr )
3166 __field( int, cache_cnt )
3167 ),
3168
3169 TP_fast_assign(
3170 tp_assign(dev, sb->s_dev)
3171 tp_assign(shrunk_nr, shrunk_nr)
3172 tp_assign(cache_cnt, cache_cnt)
3173 ),
3174
3175 TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d",
3176 MAJOR(__entry->dev), MINOR(__entry->dev),
3177 __entry->shrunk_nr, __entry->cache_cnt)
3178)
3179
b87700e3
AG
3180#endif
3181
3182#endif /* _TRACE_EXT4_H */
3183
3184/* This part must be outside protection */
3185#include "../../../probes/define_trace.h"
This page took 0.16186 seconds and 4 git commands to generate.