btrfs: Add trace for btrfs_workqueue alloc/destroy
Since most of the btrfs_workqueue is printed as pointer address, for easier analysis, add trace for btrfs_workqueue alloc/destroy. So it is possible to determine the workqueue that a given work belongs to(by comparing the wq pointer address with alloc trace event). Signed-off-by: Qu Wenruo <quenruo@cn.fujitsu.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
@@ -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 */
|
||||
|
||||
|
مرجع در شماره جدید
Block a user