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>