|
@@ -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 */
|
|
|
|