Merge branch 'lazytime' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[cascardo/linux.git] / include / trace / events / writeback.h
index 0e93109..5a14ead 100644 (file)
@@ -18,6 +18,8 @@
                {I_FREEING,             "I_FREEING"},           \
                {I_CLEAR,               "I_CLEAR"},             \
                {I_SYNC,                "I_SYNC"},              \
+               {I_DIRTY_TIME,          "I_DIRTY_TIME"},        \
+               {I_DIRTY_TIME_EXPIRED,  "I_DIRTY_TIME_EXPIRED"}, \
                {I_REFERENCED,          "I_REFERENCED"}         \
        )
 
@@ -68,6 +70,7 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
        TP_STRUCT__entry (
                __array(char, name, 32)
                __field(unsigned long, ino)
+               __field(unsigned long, state)
                __field(unsigned long, flags)
        ),
 
@@ -78,16 +81,25 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
                strncpy(__entry->name,
                        bdi->dev ? dev_name(bdi->dev) : "(unknown)", 32);
                __entry->ino            = inode->i_ino;
+               __entry->state          = inode->i_state;
                __entry->flags          = flags;
        ),
 
-       TP_printk("bdi %s: ino=%lu flags=%s",
+       TP_printk("bdi %s: ino=%lu state=%s flags=%s",
                __entry->name,
                __entry->ino,
+               show_inode_state(__entry->state),
                show_inode_state(__entry->flags)
        )
 );
 
+DEFINE_EVENT(writeback_dirty_inode_template, writeback_mark_inode_dirty,
+
+       TP_PROTO(struct inode *inode, int flags),
+
+       TP_ARGS(inode, flags)
+);
+
 DEFINE_EVENT(writeback_dirty_inode_template, writeback_dirty_inode_start,
 
        TP_PROTO(struct inode *inode, int flags),
@@ -596,6 +608,52 @@ DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode,
        TP_ARGS(inode, wbc, nr_to_write)
 );
 
+DECLARE_EVENT_CLASS(writeback_lazytime_template,
+       TP_PROTO(struct inode *inode),
+
+       TP_ARGS(inode),
+
+       TP_STRUCT__entry(
+               __field(        dev_t,  dev                     )
+               __field(unsigned long,  ino                     )
+               __field(unsigned long,  state                   )
+               __field(        __u16, mode                     )
+               __field(unsigned long, dirtied_when             )
+       ),
+
+       TP_fast_assign(
+               __entry->dev    = inode->i_sb->s_dev;
+               __entry->ino    = inode->i_ino;
+               __entry->state  = inode->i_state;
+               __entry->mode   = inode->i_mode;
+               __entry->dirtied_when = inode->dirtied_when;
+       ),
+
+       TP_printk("dev %d,%d ino %lu dirtied %lu state %s mode 0%o",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 __entry->ino, __entry->dirtied_when,
+                 show_inode_state(__entry->state), __entry->mode)
+);
+
+DEFINE_EVENT(writeback_lazytime_template, writeback_lazytime,
+       TP_PROTO(struct inode *inode),
+
+       TP_ARGS(inode)
+);
+
+DEFINE_EVENT(writeback_lazytime_template, writeback_lazytime_iput,
+       TP_PROTO(struct inode *inode),
+
+       TP_ARGS(inode)
+);
+
+DEFINE_EVENT(writeback_lazytime_template, writeback_dirty_inode_enqueue,
+
+       TP_PROTO(struct inode *inode),
+
+       TP_ARGS(inode)
+);
+
 #endif /* _TRACE_WRITEBACK_H */
 
 /* This part must be outside protection */