提交 b38a6258 编写于 作者: L Liu Bo 提交者: Chris Mason

Btrfs: add work_struct information for workqueue tracepoint

Kernel workqueue's tracepoints print the address of work_struct, while btrfs
workqueue's tracepoints print the address of btrfs_work.

We need a connection between this two, for example when debuging, we usually
grep an address in the trace output.  So it'd be better to also print
work_struct in btrfs workqueue's tracepoint.

Please note that we can only add this into those tracepoints whose work is still
available in memory because we need to reference the work.
Signed-off-by: NLiu Bo <bo.li.liu@oracle.com>
Signed-off-by: NChris Mason <clm@fb.com>
上级 d3982100
......@@ -997,6 +997,7 @@ DECLARE_EVENT_CLASS(btrfs__work,
__field( void *, func )
__field( void *, ordered_func )
__field( void *, ordered_free )
__field( void *, normal_work )
),
TP_fast_assign(
......@@ -1005,11 +1006,13 @@ DECLARE_EVENT_CLASS(btrfs__work,
__entry->func = work->func;
__entry->ordered_func = work->ordered_func;
__entry->ordered_free = work->ordered_free;
__entry->normal_work = &work->normal_work;
),
TP_printk("work=%p, wq=%p, func=%p, ordered_func=%p, ordered_free=%p",
__entry->work, __entry->wq, __entry->func,
__entry->ordered_func, __entry->ordered_free)
TP_printk("work=%p (normal_work=%p), wq=%p, func=%p, ordered_func=%p,"
" ordered_free=%p",
__entry->work, __entry->normal_work, __entry->wq,
__entry->func, __entry->ordered_func, __entry->ordered_free)
);
/* For situiations that the work is freed */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册