diff options
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/ext4.h | 30 | ||||
-rw-r--r-- | include/trace/events/writeback.h | 60 |
2 files changed, 89 insertions, 1 deletions
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index 6cfb841fea7c..6e5abd6d38a2 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
@@ -73,6 +73,36 @@ struct extent_status; | |||
73 | { FALLOC_FL_ZERO_RANGE, "ZERO_RANGE"}) | 73 | { FALLOC_FL_ZERO_RANGE, "ZERO_RANGE"}) |
74 | 74 | ||
75 | 75 | ||
76 | TRACE_EVENT(ext4_other_inode_update_time, | ||
77 | TP_PROTO(struct inode *inode, ino_t orig_ino), | ||
78 | |||
79 | TP_ARGS(inode, orig_ino), | ||
80 | |||
81 | TP_STRUCT__entry( | ||
82 | __field( dev_t, dev ) | ||
83 | __field( ino_t, ino ) | ||
84 | __field( ino_t, orig_ino ) | ||
85 | __field( uid_t, uid ) | ||
86 | __field( gid_t, gid ) | ||
87 | __field( __u16, mode ) | ||
88 | ), | ||
89 | |||
90 | TP_fast_assign( | ||
91 | __entry->orig_ino = orig_ino; | ||
92 | __entry->dev = inode->i_sb->s_dev; | ||
93 | __entry->ino = inode->i_ino; | ||
94 | __entry->uid = i_uid_read(inode); | ||
95 | __entry->gid = i_gid_read(inode); | ||
96 | __entry->mode = inode->i_mode; | ||
97 | ), | ||
98 | |||
99 | TP_printk("dev %d,%d orig_ino %lu ino %lu mode 0%o uid %u gid %u", | ||
100 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
101 | (unsigned long) __entry->orig_ino, | ||
102 | (unsigned long) __entry->ino, __entry->mode, | ||
103 | __entry->uid, __entry->gid) | ||
104 | ); | ||
105 | |||
76 | TRACE_EVENT(ext4_free_inode, | 106 | TRACE_EVENT(ext4_free_inode, |
77 | TP_PROTO(struct inode *inode), | 107 | TP_PROTO(struct inode *inode), |
78 | 108 | ||
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index 0e9310905413..5a14ead59696 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h | |||
@@ -18,6 +18,8 @@ | |||
18 | {I_FREEING, "I_FREEING"}, \ | 18 | {I_FREEING, "I_FREEING"}, \ |
19 | {I_CLEAR, "I_CLEAR"}, \ | 19 | {I_CLEAR, "I_CLEAR"}, \ |
20 | {I_SYNC, "I_SYNC"}, \ | 20 | {I_SYNC, "I_SYNC"}, \ |
21 | {I_DIRTY_TIME, "I_DIRTY_TIME"}, \ | ||
22 | {I_DIRTY_TIME_EXPIRED, "I_DIRTY_TIME_EXPIRED"}, \ | ||
21 | {I_REFERENCED, "I_REFERENCED"} \ | 23 | {I_REFERENCED, "I_REFERENCED"} \ |
22 | ) | 24 | ) |
23 | 25 | ||
@@ -68,6 +70,7 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template, | |||
68 | TP_STRUCT__entry ( | 70 | TP_STRUCT__entry ( |
69 | __array(char, name, 32) | 71 | __array(char, name, 32) |
70 | __field(unsigned long, ino) | 72 | __field(unsigned long, ino) |
73 | __field(unsigned long, state) | ||
71 | __field(unsigned long, flags) | 74 | __field(unsigned long, flags) |
72 | ), | 75 | ), |
73 | 76 | ||
@@ -78,16 +81,25 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template, | |||
78 | strncpy(__entry->name, | 81 | strncpy(__entry->name, |
79 | bdi->dev ? dev_name(bdi->dev) : "(unknown)", 32); | 82 | bdi->dev ? dev_name(bdi->dev) : "(unknown)", 32); |
80 | __entry->ino = inode->i_ino; | 83 | __entry->ino = inode->i_ino; |
84 | __entry->state = inode->i_state; | ||
81 | __entry->flags = flags; | 85 | __entry->flags = flags; |
82 | ), | 86 | ), |
83 | 87 | ||
84 | TP_printk("bdi %s: ino=%lu flags=%s", | 88 | TP_printk("bdi %s: ino=%lu state=%s flags=%s", |
85 | __entry->name, | 89 | __entry->name, |
86 | __entry->ino, | 90 | __entry->ino, |
91 | show_inode_state(__entry->state), | ||
87 | show_inode_state(__entry->flags) | 92 | show_inode_state(__entry->flags) |
88 | ) | 93 | ) |
89 | ); | 94 | ); |
90 | 95 | ||
96 | DEFINE_EVENT(writeback_dirty_inode_template, writeback_mark_inode_dirty, | ||
97 | |||
98 | TP_PROTO(struct inode *inode, int flags), | ||
99 | |||
100 | TP_ARGS(inode, flags) | ||
101 | ); | ||
102 | |||
91 | DEFINE_EVENT(writeback_dirty_inode_template, writeback_dirty_inode_start, | 103 | DEFINE_EVENT(writeback_dirty_inode_template, writeback_dirty_inode_start, |
92 | 104 | ||
93 | TP_PROTO(struct inode *inode, int flags), | 105 | TP_PROTO(struct inode *inode, int flags), |
@@ -596,6 +608,52 @@ DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode, | |||
596 | TP_ARGS(inode, wbc, nr_to_write) | 608 | TP_ARGS(inode, wbc, nr_to_write) |
597 | ); | 609 | ); |
598 | 610 | ||
611 | DECLARE_EVENT_CLASS(writeback_lazytime_template, | ||
612 | TP_PROTO(struct inode *inode), | ||
613 | |||
614 | TP_ARGS(inode), | ||
615 | |||
616 | TP_STRUCT__entry( | ||
617 | __field( dev_t, dev ) | ||
618 | __field(unsigned long, ino ) | ||
619 | __field(unsigned long, state ) | ||
620 | __field( __u16, mode ) | ||
621 | __field(unsigned long, dirtied_when ) | ||
622 | ), | ||
623 | |||
624 | TP_fast_assign( | ||
625 | __entry->dev = inode->i_sb->s_dev; | ||
626 | __entry->ino = inode->i_ino; | ||
627 | __entry->state = inode->i_state; | ||
628 | __entry->mode = inode->i_mode; | ||
629 | __entry->dirtied_when = inode->dirtied_when; | ||
630 | ), | ||
631 | |||
632 | TP_printk("dev %d,%d ino %lu dirtied %lu state %s mode 0%o", | ||
633 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
634 | __entry->ino, __entry->dirtied_when, | ||
635 | show_inode_state(__entry->state), __entry->mode) | ||
636 | ); | ||
637 | |||
638 | DEFINE_EVENT(writeback_lazytime_template, writeback_lazytime, | ||
639 | TP_PROTO(struct inode *inode), | ||
640 | |||
641 | TP_ARGS(inode) | ||
642 | ); | ||
643 | |||
644 | DEFINE_EVENT(writeback_lazytime_template, writeback_lazytime_iput, | ||
645 | TP_PROTO(struct inode *inode), | ||
646 | |||
647 | TP_ARGS(inode) | ||
648 | ); | ||
649 | |||
650 | DEFINE_EVENT(writeback_lazytime_template, writeback_dirty_inode_enqueue, | ||
651 | |||
652 | TP_PROTO(struct inode *inode), | ||
653 | |||
654 | TP_ARGS(inode) | ||
655 | ); | ||
656 | |||
599 | #endif /* _TRACE_WRITEBACK_H */ | 657 | #endif /* _TRACE_WRITEBACK_H */ |
600 | 658 | ||
601 | /* This part must be outside protection */ | 659 | /* This part must be outside protection */ |