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
= inode
->i_uid
;
28 __entry
->gid
= inode
->i_gid
;
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 long offset
),
295 TP_ARGS(page
, offset
),
298 __field( pgoff_t
, index
)
299 __field( unsigned long, offset
)
300 __field( ino_t
, ino
)
301 __field( dev_t
, dev
)
306 __entry
->index
= page
->index
;
307 __entry
->offset
= offset
;
308 __entry
->ino
= page
->mapping
->host
->i_ino
;
309 __entry
->dev
= page
->mapping
->host
->i_sb
->s_dev
;
312 TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
313 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
314 (unsigned long) __entry
->ino
,
315 __entry
->index
, __entry
->offset
)
318 TRACE_EVENT(ext3_discard_blocks
,
319 TP_PROTO(struct super_block
*sb
, unsigned long blk
,
320 unsigned long count
),
322 TP_ARGS(sb
, blk
, count
),
325 __field( dev_t
, dev
)
326 __field( unsigned long, blk
)
327 __field( unsigned long, count
)
332 __entry
->dev
= sb
->s_dev
;
334 __entry
->count
= count
;
337 TP_printk("dev %d,%d blk %lu count %lu",
338 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
339 __entry
->blk
, __entry
->count
)
342 TRACE_EVENT(ext3_request_blocks
,
343 TP_PROTO(struct inode
*inode
, unsigned long goal
,
344 unsigned long count
),
346 TP_ARGS(inode
, goal
, count
),
349 __field( dev_t
, dev
)
350 __field( ino_t
, ino
)
351 __field( unsigned long, count
)
352 __field( unsigned long, goal
)
356 __entry
->dev
= inode
->i_sb
->s_dev
;
357 __entry
->ino
= inode
->i_ino
;
358 __entry
->count
= count
;
359 __entry
->goal
= goal
;
362 TP_printk("dev %d,%d ino %lu count %lu goal %lu ",
363 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
364 (unsigned long) __entry
->ino
,
365 __entry
->count
, __entry
->goal
)
368 TRACE_EVENT(ext3_allocate_blocks
,
369 TP_PROTO(struct inode
*inode
, unsigned long goal
,
370 unsigned long count
, unsigned long block
),
372 TP_ARGS(inode
, goal
, count
, block
),
375 __field( dev_t
, dev
)
376 __field( ino_t
, ino
)
377 __field( unsigned long, block
)
378 __field( unsigned long, count
)
379 __field( unsigned long, goal
)
383 __entry
->dev
= inode
->i_sb
->s_dev
;
384 __entry
->ino
= inode
->i_ino
;
385 __entry
->block
= block
;
386 __entry
->count
= count
;
387 __entry
->goal
= goal
;
390 TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu",
391 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
392 (unsigned long) __entry
->ino
,
393 __entry
->count
, __entry
->block
,
397 TRACE_EVENT(ext3_free_blocks
,
398 TP_PROTO(struct inode
*inode
, unsigned long block
,
399 unsigned long count
),
401 TP_ARGS(inode
, block
, count
),
404 __field( dev_t
, dev
)
405 __field( ino_t
, ino
)
406 __field( umode_t
, mode
)
407 __field( unsigned long, block
)
408 __field( unsigned long, count
)
412 __entry
->dev
= inode
->i_sb
->s_dev
;
413 __entry
->ino
= inode
->i_ino
;
414 __entry
->mode
= inode
->i_mode
;
415 __entry
->block
= block
;
416 __entry
->count
= count
;
419 TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu",
420 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
421 (unsigned long) __entry
->ino
,
422 __entry
->mode
, __entry
->block
, __entry
->count
)
425 TRACE_EVENT(ext3_sync_file_enter
,
426 TP_PROTO(struct file
*file
, int datasync
),
428 TP_ARGS(file
, datasync
),
431 __field( dev_t
, dev
)
432 __field( ino_t
, ino
)
433 __field( ino_t
, parent
)
434 __field( int, datasync
)
438 struct dentry
*dentry
= file
->f_path
.dentry
;
440 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
441 __entry
->ino
= dentry
->d_inode
->i_ino
;
442 __entry
->datasync
= datasync
;
443 __entry
->parent
= dentry
->d_parent
->d_inode
->i_ino
;
446 TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
447 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
448 (unsigned long) __entry
->ino
,
449 (unsigned long) __entry
->parent
, __entry
->datasync
)
452 TRACE_EVENT(ext3_sync_file_exit
,
453 TP_PROTO(struct inode
*inode
, int ret
),
459 __field( ino_t
, ino
)
460 __field( dev_t
, dev
)
465 __entry
->ino
= inode
->i_ino
;
466 __entry
->dev
= inode
->i_sb
->s_dev
;
469 TP_printk("dev %d,%d ino %lu ret %d",
470 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
471 (unsigned long) __entry
->ino
,
475 TRACE_EVENT(ext3_sync_fs
,
476 TP_PROTO(struct super_block
*sb
, int wait
),
481 __field( dev_t
, dev
)
487 __entry
->dev
= sb
->s_dev
;
488 __entry
->wait
= wait
;
491 TP_printk("dev %d,%d wait %d",
492 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
496 TRACE_EVENT(ext3_rsv_window_add
,
497 TP_PROTO(struct super_block
*sb
,
498 struct ext3_reserve_window_node
*rsv_node
),
500 TP_ARGS(sb
, rsv_node
),
503 __field( unsigned long, start
)
504 __field( unsigned long, end
)
505 __field( dev_t
, dev
)
509 __entry
->dev
= sb
->s_dev
;
510 __entry
->start
= rsv_node
->rsv_window
._rsv_start
;
511 __entry
->end
= rsv_node
->rsv_window
._rsv_end
;
514 TP_printk("dev %d,%d start %lu end %lu",
515 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
516 __entry
->start
, __entry
->end
)
519 TRACE_EVENT(ext3_discard_reservation
,
520 TP_PROTO(struct inode
*inode
,
521 struct ext3_reserve_window_node
*rsv_node
),
523 TP_ARGS(inode
, rsv_node
),
526 __field( unsigned long, start
)
527 __field( unsigned long, end
)
528 __field( ino_t
, ino
)
529 __field( dev_t
, dev
)
533 __entry
->start
= rsv_node
->rsv_window
._rsv_start
;
534 __entry
->end
= rsv_node
->rsv_window
._rsv_end
;
535 __entry
->ino
= inode
->i_ino
;
536 __entry
->dev
= inode
->i_sb
->s_dev
;
539 TP_printk("dev %d,%d ino %lu start %lu end %lu",
540 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
541 (unsigned long)__entry
->ino
, __entry
->start
,
545 TRACE_EVENT(ext3_alloc_new_reservation
,
546 TP_PROTO(struct super_block
*sb
, unsigned long goal
),
551 __field( dev_t
, dev
)
552 __field( unsigned long, goal
)
556 __entry
->dev
= sb
->s_dev
;
557 __entry
->goal
= goal
;
560 TP_printk("dev %d,%d goal %lu",
561 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
565 TRACE_EVENT(ext3_reserved
,
566 TP_PROTO(struct super_block
*sb
, unsigned long block
,
567 struct ext3_reserve_window_node
*rsv_node
),
569 TP_ARGS(sb
, block
, rsv_node
),
572 __field( unsigned long, block
)
573 __field( unsigned long, start
)
574 __field( unsigned long, end
)
575 __field( dev_t
, dev
)
579 __entry
->block
= block
;
580 __entry
->start
= rsv_node
->rsv_window
._rsv_start
;
581 __entry
->end
= rsv_node
->rsv_window
._rsv_end
;
582 __entry
->dev
= sb
->s_dev
;
585 TP_printk("dev %d,%d block %lu, start %lu end %lu",
586 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
587 __entry
->block
, __entry
->start
, __entry
->end
)
590 TRACE_EVENT(ext3_forget
,
591 TP_PROTO(struct inode
*inode
, int is_metadata
, unsigned long block
),
593 TP_ARGS(inode
, is_metadata
, block
),
596 __field( dev_t
, dev
)
597 __field( ino_t
, ino
)
598 __field( umode_t
, mode
)
599 __field( int, is_metadata
)
600 __field( unsigned long, block
)
604 __entry
->dev
= inode
->i_sb
->s_dev
;
605 __entry
->ino
= inode
->i_ino
;
606 __entry
->mode
= inode
->i_mode
;
607 __entry
->is_metadata
= is_metadata
;
608 __entry
->block
= block
;
611 TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu",
612 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
613 (unsigned long) __entry
->ino
,
614 __entry
->mode
, __entry
->is_metadata
, __entry
->block
)
617 TRACE_EVENT(ext3_read_block_bitmap
,
618 TP_PROTO(struct super_block
*sb
, unsigned int group
),
623 __field( dev_t
, dev
)
624 __field( __u32
, group
)
629 __entry
->dev
= sb
->s_dev
;
630 __entry
->group
= group
;
633 TP_printk("dev %d,%d group %u",
634 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
638 TRACE_EVENT(ext3_direct_IO_enter
,
639 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
, int rw
),
641 TP_ARGS(inode
, offset
, len
, rw
),
644 __field( ino_t
, ino
)
645 __field( dev_t
, dev
)
646 __field( loff_t
, pos
)
647 __field( unsigned long, len
)
652 __entry
->ino
= inode
->i_ino
;
653 __entry
->dev
= inode
->i_sb
->s_dev
;
654 __entry
->pos
= offset
;
659 TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
660 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
661 (unsigned long) __entry
->ino
,
662 (unsigned long long) __entry
->pos
, __entry
->len
,
666 TRACE_EVENT(ext3_direct_IO_exit
,
667 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
,
670 TP_ARGS(inode
, offset
, len
, rw
, ret
),
673 __field( ino_t
, ino
)
674 __field( dev_t
, dev
)
675 __field( loff_t
, pos
)
676 __field( unsigned long, len
)
682 __entry
->ino
= inode
->i_ino
;
683 __entry
->dev
= inode
->i_sb
->s_dev
;
684 __entry
->pos
= offset
;
690 TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
691 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
692 (unsigned long) __entry
->ino
,
693 (unsigned long long) __entry
->pos
, __entry
->len
,
694 __entry
->rw
, __entry
->ret
)
697 TRACE_EVENT(ext3_unlink_enter
,
698 TP_PROTO(struct inode
*parent
, struct dentry
*dentry
),
700 TP_ARGS(parent
, dentry
),
703 __field( ino_t
, parent
)
704 __field( ino_t
, ino
)
705 __field( loff_t
, size
)
706 __field( dev_t
, dev
)
710 __entry
->parent
= parent
->i_ino
;
711 __entry
->ino
= dentry
->d_inode
->i_ino
;
712 __entry
->size
= dentry
->d_inode
->i_size
;
713 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
716 TP_printk("dev %d,%d ino %lu size %lld parent %ld",
717 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
718 (unsigned long) __entry
->ino
,
719 (unsigned long long)__entry
->size
,
720 (unsigned long) __entry
->parent
)
723 TRACE_EVENT(ext3_unlink_exit
,
724 TP_PROTO(struct dentry
*dentry
, int ret
),
726 TP_ARGS(dentry
, ret
),
729 __field( ino_t
, ino
)
730 __field( dev_t
, dev
)
735 __entry
->ino
= dentry
->d_inode
->i_ino
;
736 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
740 TP_printk("dev %d,%d ino %lu ret %d",
741 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
742 (unsigned long) __entry
->ino
,
746 DECLARE_EVENT_CLASS(ext3__truncate
,
747 TP_PROTO(struct inode
*inode
),
752 __field( ino_t
, ino
)
753 __field( dev_t
, dev
)
754 __field( blkcnt_t
, blocks
)
758 __entry
->ino
= inode
->i_ino
;
759 __entry
->dev
= inode
->i_sb
->s_dev
;
760 __entry
->blocks
= inode
->i_blocks
;
763 TP_printk("dev %d,%d ino %lu blocks %lu",
764 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
765 (unsigned long) __entry
->ino
, (unsigned long) __entry
->blocks
)
768 DEFINE_EVENT(ext3__truncate
, ext3_truncate_enter
,
770 TP_PROTO(struct inode
*inode
),
775 DEFINE_EVENT(ext3__truncate
, ext3_truncate_exit
,
777 TP_PROTO(struct inode
*inode
),
782 TRACE_EVENT(ext3_get_blocks_enter
,
783 TP_PROTO(struct inode
*inode
, unsigned long lblk
,
784 unsigned long len
, int create
),
786 TP_ARGS(inode
, lblk
, len
, create
),
789 __field( ino_t
, ino
)
790 __field( dev_t
, dev
)
791 __field( unsigned long, lblk
)
792 __field( unsigned long, len
)
793 __field( int, create
)
797 __entry
->ino
= inode
->i_ino
;
798 __entry
->dev
= inode
->i_sb
->s_dev
;
799 __entry
->lblk
= lblk
;
801 __entry
->create
= create
;
804 TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u",
805 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
806 (unsigned long) __entry
->ino
,
807 __entry
->lblk
, __entry
->len
, __entry
->create
)
810 TRACE_EVENT(ext3_get_blocks_exit
,
811 TP_PROTO(struct inode
*inode
, unsigned long lblk
,
812 unsigned long pblk
, unsigned long len
, int ret
),
814 TP_ARGS(inode
, lblk
, pblk
, len
, ret
),
817 __field( ino_t
, ino
)
818 __field( dev_t
, dev
)
819 __field( unsigned long, lblk
)
820 __field( unsigned long, pblk
)
821 __field( unsigned long, len
)
826 __entry
->ino
= inode
->i_ino
;
827 __entry
->dev
= inode
->i_sb
->s_dev
;
828 __entry
->lblk
= lblk
;
829 __entry
->pblk
= pblk
;
834 TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d",
835 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
836 (unsigned long) __entry
->ino
,
837 __entry
->lblk
, __entry
->pblk
,
838 __entry
->len
, __entry
->ret
)
841 TRACE_EVENT(ext3_load_inode
,
842 TP_PROTO(struct inode
*inode
),
847 __field( ino_t
, ino
)
848 __field( dev_t
, dev
)
852 __entry
->ino
= inode
->i_ino
;
853 __entry
->dev
= inode
->i_sb
->s_dev
;
856 TP_printk("dev %d,%d ino %lu",
857 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
858 (unsigned long) __entry
->ino
)
861 #endif /* _TRACE_EXT3_H */
863 /* This part must be outside protection */
864 #include <trace/define_trace.h>