2 #define TRACE_SYSTEM ext3
4 #if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ)
7 #include <linux/tracepoint.h>
9 TRACE_EVENT(ext3_free_inode
,
10 TP_PROTO(struct inode
*inode
),
17 __field( umode_t
, mode
)
20 __field( blkcnt_t
, blocks
)
24 __entry
->dev
= inode
->i_sb
->s_dev
;
25 __entry
->ino
= inode
->i_ino
;
26 __entry
->mode
= inode
->i_mode
;
27 __entry
->uid
= i_uid_read(inode
);
28 __entry
->gid
= i_gid_read(inode
);
29 __entry
->blocks
= inode
->i_blocks
;
32 TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu",
33 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
34 (unsigned long) __entry
->ino
,
35 __entry
->mode
, __entry
->uid
, __entry
->gid
,
36 (unsigned long) __entry
->blocks
)
39 TRACE_EVENT(ext3_request_inode
,
40 TP_PROTO(struct inode
*dir
, int mode
),
47 __field( umode_t
, mode
)
51 __entry
->dev
= dir
->i_sb
->s_dev
;
52 __entry
->dir
= dir
->i_ino
;
56 TP_printk("dev %d,%d dir %lu mode 0%o",
57 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
58 (unsigned long) __entry
->dir
, __entry
->mode
)
61 TRACE_EVENT(ext3_allocate_inode
,
62 TP_PROTO(struct inode
*inode
, struct inode
*dir
, int mode
),
64 TP_ARGS(inode
, dir
, mode
),
70 __field( umode_t
, mode
)
74 __entry
->dev
= inode
->i_sb
->s_dev
;
75 __entry
->ino
= inode
->i_ino
;
76 __entry
->dir
= dir
->i_ino
;
80 TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
81 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
82 (unsigned long) __entry
->ino
,
83 (unsigned long) __entry
->dir
, __entry
->mode
)
86 TRACE_EVENT(ext3_evict_inode
,
87 TP_PROTO(struct inode
*inode
),
98 __entry
->dev
= inode
->i_sb
->s_dev
;
99 __entry
->ino
= inode
->i_ino
;
100 __entry
->nlink
= inode
->i_nlink
;
103 TP_printk("dev %d,%d ino %lu nlink %d",
104 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
105 (unsigned long) __entry
->ino
, __entry
->nlink
)
108 TRACE_EVENT(ext3_drop_inode
,
109 TP_PROTO(struct inode
*inode
, int drop
),
111 TP_ARGS(inode
, drop
),
114 __field( dev_t
, dev
)
115 __field( ino_t
, ino
)
120 __entry
->dev
= inode
->i_sb
->s_dev
;
121 __entry
->ino
= inode
->i_ino
;
122 __entry
->drop
= drop
;
125 TP_printk("dev %d,%d ino %lu drop %d",
126 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
127 (unsigned long) __entry
->ino
, __entry
->drop
)
130 TRACE_EVENT(ext3_mark_inode_dirty
,
131 TP_PROTO(struct inode
*inode
, unsigned long IP
),
136 __field( dev_t
, dev
)
137 __field( ino_t
, ino
)
138 __field(unsigned long, ip
)
142 __entry
->dev
= inode
->i_sb
->s_dev
;
143 __entry
->ino
= inode
->i_ino
;
147 TP_printk("dev %d,%d ino %lu caller %pF",
148 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
149 (unsigned long) __entry
->ino
, (void *)__entry
->ip
)
152 TRACE_EVENT(ext3_write_begin
,
153 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
156 TP_ARGS(inode
, pos
, len
, flags
),
159 __field( dev_t
, dev
)
160 __field( ino_t
, ino
)
161 __field( loff_t
, pos
)
162 __field( unsigned int, len
)
163 __field( unsigned int, flags
)
167 __entry
->dev
= inode
->i_sb
->s_dev
;
168 __entry
->ino
= inode
->i_ino
;
171 __entry
->flags
= flags
;
174 TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u",
175 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
176 (unsigned long) __entry
->ino
,
177 (unsigned long long) __entry
->pos
, __entry
->len
,
181 DECLARE_EVENT_CLASS(ext3__write_end
,
182 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
183 unsigned int copied
),
185 TP_ARGS(inode
, pos
, len
, copied
),
188 __field( dev_t
, dev
)
189 __field( ino_t
, ino
)
190 __field( loff_t
, pos
)
191 __field( unsigned int, len
)
192 __field( unsigned int, copied
)
196 __entry
->dev
= inode
->i_sb
->s_dev
;
197 __entry
->ino
= inode
->i_ino
;
200 __entry
->copied
= copied
;
203 TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u",
204 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
205 (unsigned long) __entry
->ino
,
206 (unsigned long long) __entry
->pos
, __entry
->len
,
210 DEFINE_EVENT(ext3__write_end
, ext3_ordered_write_end
,
212 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
213 unsigned int copied
),
215 TP_ARGS(inode
, pos
, len
, copied
)
218 DEFINE_EVENT(ext3__write_end
, ext3_writeback_write_end
,
220 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
221 unsigned int copied
),
223 TP_ARGS(inode
, pos
, len
, copied
)
226 DEFINE_EVENT(ext3__write_end
, ext3_journalled_write_end
,
228 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
229 unsigned int copied
),
231 TP_ARGS(inode
, pos
, len
, copied
)
234 DECLARE_EVENT_CLASS(ext3__page_op
,
235 TP_PROTO(struct page
*page
),
240 __field( dev_t
, dev
)
241 __field( ino_t
, ino
)
242 __field( pgoff_t
, index
)
247 __entry
->index
= page
->index
;
248 __entry
->ino
= page
->mapping
->host
->i_ino
;
249 __entry
->dev
= page
->mapping
->host
->i_sb
->s_dev
;
252 TP_printk("dev %d,%d ino %lu page_index %lu",
253 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
254 (unsigned long) __entry
->ino
, __entry
->index
)
257 DEFINE_EVENT(ext3__page_op
, ext3_ordered_writepage
,
259 TP_PROTO(struct page
*page
),
264 DEFINE_EVENT(ext3__page_op
, ext3_writeback_writepage
,
266 TP_PROTO(struct page
*page
),
271 DEFINE_EVENT(ext3__page_op
, ext3_journalled_writepage
,
273 TP_PROTO(struct page
*page
),
278 DEFINE_EVENT(ext3__page_op
, ext3_readpage
,
280 TP_PROTO(struct page
*page
),
285 DEFINE_EVENT(ext3__page_op
, ext3_releasepage
,
287 TP_PROTO(struct page
*page
),
292 TRACE_EVENT(ext3_invalidatepage
,
293 TP_PROTO(struct page
*page
, unsigned int offset
, unsigned int length
),
295 TP_ARGS(page
, offset
, length
),
298 __field( pgoff_t
, index
)
299 __field( unsigned int, offset
)
300 __field( unsigned int, length
)
301 __field( ino_t
, ino
)
302 __field( dev_t
, dev
)
307 __entry
->index
= page
->index
;
308 __entry
->offset
= offset
;
309 __entry
->length
= length
;
310 __entry
->ino
= page
->mapping
->host
->i_ino
;
311 __entry
->dev
= page
->mapping
->host
->i_sb
->s_dev
;
314 TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u",
315 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
316 (unsigned long) __entry
->ino
,
317 __entry
->index
, __entry
->offset
, __entry
->length
)
320 TRACE_EVENT(ext3_discard_blocks
,
321 TP_PROTO(struct super_block
*sb
, unsigned long blk
,
322 unsigned long count
),
324 TP_ARGS(sb
, blk
, count
),
327 __field( dev_t
, dev
)
328 __field( unsigned long, blk
)
329 __field( unsigned long, count
)
334 __entry
->dev
= sb
->s_dev
;
336 __entry
->count
= count
;
339 TP_printk("dev %d,%d blk %lu count %lu",
340 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
341 __entry
->blk
, __entry
->count
)
344 TRACE_EVENT(ext3_request_blocks
,
345 TP_PROTO(struct inode
*inode
, unsigned long goal
,
346 unsigned long count
),
348 TP_ARGS(inode
, goal
, count
),
351 __field( dev_t
, dev
)
352 __field( ino_t
, ino
)
353 __field( unsigned long, count
)
354 __field( unsigned long, goal
)
358 __entry
->dev
= inode
->i_sb
->s_dev
;
359 __entry
->ino
= inode
->i_ino
;
360 __entry
->count
= count
;
361 __entry
->goal
= goal
;
364 TP_printk("dev %d,%d ino %lu count %lu goal %lu ",
365 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
366 (unsigned long) __entry
->ino
,
367 __entry
->count
, __entry
->goal
)
370 TRACE_EVENT(ext3_allocate_blocks
,
371 TP_PROTO(struct inode
*inode
, unsigned long goal
,
372 unsigned long count
, unsigned long block
),
374 TP_ARGS(inode
, goal
, count
, block
),
377 __field( dev_t
, dev
)
378 __field( ino_t
, ino
)
379 __field( unsigned long, block
)
380 __field( unsigned long, count
)
381 __field( unsigned long, goal
)
385 __entry
->dev
= inode
->i_sb
->s_dev
;
386 __entry
->ino
= inode
->i_ino
;
387 __entry
->block
= block
;
388 __entry
->count
= count
;
389 __entry
->goal
= goal
;
392 TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu",
393 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
394 (unsigned long) __entry
->ino
,
395 __entry
->count
, __entry
->block
,
399 TRACE_EVENT(ext3_free_blocks
,
400 TP_PROTO(struct inode
*inode
, unsigned long block
,
401 unsigned long count
),
403 TP_ARGS(inode
, block
, count
),
406 __field( dev_t
, dev
)
407 __field( ino_t
, ino
)
408 __field( umode_t
, mode
)
409 __field( unsigned long, block
)
410 __field( unsigned long, count
)
414 __entry
->dev
= inode
->i_sb
->s_dev
;
415 __entry
->ino
= inode
->i_ino
;
416 __entry
->mode
= inode
->i_mode
;
417 __entry
->block
= block
;
418 __entry
->count
= count
;
421 TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu",
422 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
423 (unsigned long) __entry
->ino
,
424 __entry
->mode
, __entry
->block
, __entry
->count
)
427 TRACE_EVENT(ext3_sync_file_enter
,
428 TP_PROTO(struct file
*file
, int datasync
),
430 TP_ARGS(file
, datasync
),
433 __field( dev_t
, dev
)
434 __field( ino_t
, ino
)
435 __field( ino_t
, parent
)
436 __field( int, datasync
)
440 struct dentry
*dentry
= file
->f_path
.dentry
;
442 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
443 __entry
->ino
= dentry
->d_inode
->i_ino
;
444 __entry
->datasync
= datasync
;
445 __entry
->parent
= dentry
->d_parent
->d_inode
->i_ino
;
448 TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
449 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
450 (unsigned long) __entry
->ino
,
451 (unsigned long) __entry
->parent
, __entry
->datasync
)
454 TRACE_EVENT(ext3_sync_file_exit
,
455 TP_PROTO(struct inode
*inode
, int ret
),
461 __field( ino_t
, ino
)
462 __field( dev_t
, dev
)
467 __entry
->ino
= inode
->i_ino
;
468 __entry
->dev
= inode
->i_sb
->s_dev
;
471 TP_printk("dev %d,%d ino %lu ret %d",
472 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
473 (unsigned long) __entry
->ino
,
477 TRACE_EVENT(ext3_sync_fs
,
478 TP_PROTO(struct super_block
*sb
, int wait
),
483 __field( dev_t
, dev
)
489 __entry
->dev
= sb
->s_dev
;
490 __entry
->wait
= wait
;
493 TP_printk("dev %d,%d wait %d",
494 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
498 TRACE_EVENT(ext3_rsv_window_add
,
499 TP_PROTO(struct super_block
*sb
,
500 struct ext3_reserve_window_node
*rsv_node
),
502 TP_ARGS(sb
, rsv_node
),
505 __field( unsigned long, start
)
506 __field( unsigned long, end
)
507 __field( dev_t
, dev
)
511 __entry
->dev
= sb
->s_dev
;
512 __entry
->start
= rsv_node
->rsv_window
._rsv_start
;
513 __entry
->end
= rsv_node
->rsv_window
._rsv_end
;
516 TP_printk("dev %d,%d start %lu end %lu",
517 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
518 __entry
->start
, __entry
->end
)
521 TRACE_EVENT(ext3_discard_reservation
,
522 TP_PROTO(struct inode
*inode
,
523 struct ext3_reserve_window_node
*rsv_node
),
525 TP_ARGS(inode
, rsv_node
),
528 __field( unsigned long, start
)
529 __field( unsigned long, end
)
530 __field( ino_t
, ino
)
531 __field( dev_t
, dev
)
535 __entry
->start
= rsv_node
->rsv_window
._rsv_start
;
536 __entry
->end
= rsv_node
->rsv_window
._rsv_end
;
537 __entry
->ino
= inode
->i_ino
;
538 __entry
->dev
= inode
->i_sb
->s_dev
;
541 TP_printk("dev %d,%d ino %lu start %lu end %lu",
542 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
543 (unsigned long)__entry
->ino
, __entry
->start
,
547 TRACE_EVENT(ext3_alloc_new_reservation
,
548 TP_PROTO(struct super_block
*sb
, unsigned long goal
),
553 __field( dev_t
, dev
)
554 __field( unsigned long, goal
)
558 __entry
->dev
= sb
->s_dev
;
559 __entry
->goal
= goal
;
562 TP_printk("dev %d,%d goal %lu",
563 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
567 TRACE_EVENT(ext3_reserved
,
568 TP_PROTO(struct super_block
*sb
, unsigned long block
,
569 struct ext3_reserve_window_node
*rsv_node
),
571 TP_ARGS(sb
, block
, rsv_node
),
574 __field( unsigned long, block
)
575 __field( unsigned long, start
)
576 __field( unsigned long, end
)
577 __field( dev_t
, dev
)
581 __entry
->block
= block
;
582 __entry
->start
= rsv_node
->rsv_window
._rsv_start
;
583 __entry
->end
= rsv_node
->rsv_window
._rsv_end
;
584 __entry
->dev
= sb
->s_dev
;
587 TP_printk("dev %d,%d block %lu, start %lu end %lu",
588 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
589 __entry
->block
, __entry
->start
, __entry
->end
)
592 TRACE_EVENT(ext3_forget
,
593 TP_PROTO(struct inode
*inode
, int is_metadata
, unsigned long block
),
595 TP_ARGS(inode
, is_metadata
, block
),
598 __field( dev_t
, dev
)
599 __field( ino_t
, ino
)
600 __field( umode_t
, mode
)
601 __field( int, is_metadata
)
602 __field( unsigned long, block
)
606 __entry
->dev
= inode
->i_sb
->s_dev
;
607 __entry
->ino
= inode
->i_ino
;
608 __entry
->mode
= inode
->i_mode
;
609 __entry
->is_metadata
= is_metadata
;
610 __entry
->block
= block
;
613 TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu",
614 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
615 (unsigned long) __entry
->ino
,
616 __entry
->mode
, __entry
->is_metadata
, __entry
->block
)
619 TRACE_EVENT(ext3_read_block_bitmap
,
620 TP_PROTO(struct super_block
*sb
, unsigned int group
),
625 __field( dev_t
, dev
)
626 __field( __u32
, group
)
631 __entry
->dev
= sb
->s_dev
;
632 __entry
->group
= group
;
635 TP_printk("dev %d,%d group %u",
636 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
640 TRACE_EVENT(ext3_direct_IO_enter
,
641 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
, int rw
),
643 TP_ARGS(inode
, offset
, len
, rw
),
646 __field( ino_t
, ino
)
647 __field( dev_t
, dev
)
648 __field( loff_t
, pos
)
649 __field( unsigned long, len
)
654 __entry
->ino
= inode
->i_ino
;
655 __entry
->dev
= inode
->i_sb
->s_dev
;
656 __entry
->pos
= offset
;
661 TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
662 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
663 (unsigned long) __entry
->ino
,
664 (unsigned long long) __entry
->pos
, __entry
->len
,
668 TRACE_EVENT(ext3_direct_IO_exit
,
669 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
,
672 TP_ARGS(inode
, offset
, len
, rw
, ret
),
675 __field( ino_t
, ino
)
676 __field( dev_t
, dev
)
677 __field( loff_t
, pos
)
678 __field( unsigned long, len
)
684 __entry
->ino
= inode
->i_ino
;
685 __entry
->dev
= inode
->i_sb
->s_dev
;
686 __entry
->pos
= offset
;
692 TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
693 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
694 (unsigned long) __entry
->ino
,
695 (unsigned long long) __entry
->pos
, __entry
->len
,
696 __entry
->rw
, __entry
->ret
)
699 TRACE_EVENT(ext3_unlink_enter
,
700 TP_PROTO(struct inode
*parent
, struct dentry
*dentry
),
702 TP_ARGS(parent
, dentry
),
705 __field( ino_t
, parent
)
706 __field( ino_t
, ino
)
707 __field( loff_t
, size
)
708 __field( dev_t
, dev
)
712 __entry
->parent
= parent
->i_ino
;
713 __entry
->ino
= dentry
->d_inode
->i_ino
;
714 __entry
->size
= dentry
->d_inode
->i_size
;
715 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
718 TP_printk("dev %d,%d ino %lu size %lld parent %ld",
719 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
720 (unsigned long) __entry
->ino
,
721 (unsigned long long)__entry
->size
,
722 (unsigned long) __entry
->parent
)
725 TRACE_EVENT(ext3_unlink_exit
,
726 TP_PROTO(struct dentry
*dentry
, int ret
),
728 TP_ARGS(dentry
, ret
),
731 __field( ino_t
, ino
)
732 __field( dev_t
, dev
)
737 __entry
->ino
= dentry
->d_inode
->i_ino
;
738 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
742 TP_printk("dev %d,%d ino %lu ret %d",
743 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
744 (unsigned long) __entry
->ino
,
748 DECLARE_EVENT_CLASS(ext3__truncate
,
749 TP_PROTO(struct inode
*inode
),
754 __field( ino_t
, ino
)
755 __field( dev_t
, dev
)
756 __field( blkcnt_t
, blocks
)
760 __entry
->ino
= inode
->i_ino
;
761 __entry
->dev
= inode
->i_sb
->s_dev
;
762 __entry
->blocks
= inode
->i_blocks
;
765 TP_printk("dev %d,%d ino %lu blocks %lu",
766 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
767 (unsigned long) __entry
->ino
, (unsigned long) __entry
->blocks
)
770 DEFINE_EVENT(ext3__truncate
, ext3_truncate_enter
,
772 TP_PROTO(struct inode
*inode
),
777 DEFINE_EVENT(ext3__truncate
, ext3_truncate_exit
,
779 TP_PROTO(struct inode
*inode
),
784 TRACE_EVENT(ext3_get_blocks_enter
,
785 TP_PROTO(struct inode
*inode
, unsigned long lblk
,
786 unsigned long len
, int create
),
788 TP_ARGS(inode
, lblk
, len
, create
),
791 __field( ino_t
, ino
)
792 __field( dev_t
, dev
)
793 __field( unsigned long, lblk
)
794 __field( unsigned long, len
)
795 __field( int, create
)
799 __entry
->ino
= inode
->i_ino
;
800 __entry
->dev
= inode
->i_sb
->s_dev
;
801 __entry
->lblk
= lblk
;
803 __entry
->create
= create
;
806 TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u",
807 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
808 (unsigned long) __entry
->ino
,
809 __entry
->lblk
, __entry
->len
, __entry
->create
)
812 TRACE_EVENT(ext3_get_blocks_exit
,
813 TP_PROTO(struct inode
*inode
, unsigned long lblk
,
814 unsigned long pblk
, unsigned long len
, int ret
),
816 TP_ARGS(inode
, lblk
, pblk
, len
, ret
),
819 __field( ino_t
, ino
)
820 __field( dev_t
, dev
)
821 __field( unsigned long, lblk
)
822 __field( unsigned long, pblk
)
823 __field( unsigned long, len
)
828 __entry
->ino
= inode
->i_ino
;
829 __entry
->dev
= inode
->i_sb
->s_dev
;
830 __entry
->lblk
= lblk
;
831 __entry
->pblk
= pblk
;
836 TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d",
837 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
838 (unsigned long) __entry
->ino
,
839 __entry
->lblk
, __entry
->pblk
,
840 __entry
->len
, __entry
->ret
)
843 TRACE_EVENT(ext3_load_inode
,
844 TP_PROTO(struct inode
*inode
),
849 __field( ino_t
, ino
)
850 __field( dev_t
, dev
)
854 __entry
->ino
= inode
->i_ino
;
855 __entry
->dev
= inode
->i_sb
->s_dev
;
858 TP_printk("dev %d,%d ino %lu",
859 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
860 (unsigned long) __entry
->ino
)
863 #endif /* _TRACE_EXT3_H */
865 /* This part must be outside protection */
866 #include <trace/define_trace.h>