btrfs: Add trace for btrfs_workqueue alloc/destroy
[cascardo/linux.git] / include / trace / events / btrfs.h
index c346919..4ee4e30 100644 (file)
@@ -22,6 +22,7 @@ struct btrfs_free_cluster;
 struct map_lookup;
 struct extent_buffer;
 struct btrfs_work;
+struct __btrfs_workqueue;
 
 #define show_ref_type(type)                                            \
        __print_symbolic(type,                                          \
@@ -1063,6 +1064,60 @@ DEFINE_EVENT(btrfs__work, btrfs_ordered_sched,
        TP_ARGS(work)
 );
 
+DECLARE_EVENT_CLASS(btrfs__workqueue,
+
+       TP_PROTO(struct __btrfs_workqueue *wq, const char *name, int high),
+
+       TP_ARGS(wq, name, high),
+
+       TP_STRUCT__entry(
+               __field(        void *, wq                      )
+               __string(       name,   name                    )
+               __field(        int ,   high                    )
+       ),
+
+       TP_fast_assign(
+               __entry->wq             = wq;
+               __assign_str(name, name);
+               __entry->high           = high;
+       ),
+
+       TP_printk("name=%s%s, wq=%p", __get_str(name),
+                 __print_flags(__entry->high, "",
+                               {(WQ_HIGHPRI),  "-high"}),
+                 __entry->wq)
+);
+
+DEFINE_EVENT(btrfs__workqueue, btrfs_workqueue_alloc,
+
+       TP_PROTO(struct __btrfs_workqueue *wq, const char *name, int high),
+
+       TP_ARGS(wq, name, high)
+);
+
+DECLARE_EVENT_CLASS(btrfs__workqueue_done,
+
+       TP_PROTO(struct __btrfs_workqueue *wq),
+
+       TP_ARGS(wq),
+
+       TP_STRUCT__entry(
+               __field(        void *, wq                      )
+       ),
+
+       TP_fast_assign(
+               __entry->wq             = wq;
+       ),
+
+       TP_printk("wq=%p", __entry->wq)
+);
+
+DEFINE_EVENT(btrfs__workqueue_done, btrfs_workqueue_destroy,
+
+       TP_PROTO(struct __btrfs_workqueue *wq),
+
+       TP_ARGS(wq)
+);
 
 #endif /* _TRACE_BTRFS_H */