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: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
Родитель
d3982100ba
Коммит
b38a62586f
|
@ -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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче