workqueue: tracing the name of the workqueue instead of it's address
authorZqiang <qiang.zhang@windriver.com>
Mon, 4 Jan 2021 12:43:06 +0000 (20:43 +0800)
committerTejun Heo <tj@kernel.org>
Tue, 19 Jan 2021 16:03:54 +0000 (11:03 -0500)
This patch tracing workqueue name instead of it's address, the
new format is as follows.

workqueue_queue_work: work struct=0000000084e3df56 function=
drm_fb_helper_dirty_work workqueue=events req_cpu=256 cpu=1

This tell us to know which workqueue our work is queued.

Signed-off-by: Zqiang <qiang.zhang@windriver.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
include/trace/events/workqueue.h

index 9b8ae961acc53aad73830b7c2bf200eecf7064ec..970cc2ea285002ea2473449321343a63f8cd513d 100644 (file)
@@ -30,7 +30,7 @@ TRACE_EVENT(workqueue_queue_work,
        TP_STRUCT__entry(
                __field( void *,        work    )
                __field( void *,        function)
-               __field( void *,        workqueue)
+               __field( const char *,  workqueue)
                __field( unsigned int,  req_cpu )
                __field( unsigned int,  cpu     )
        ),
@@ -38,12 +38,12 @@ TRACE_EVENT(workqueue_queue_work,
        TP_fast_assign(
                __entry->work           = work;
                __entry->function       = work->func;
-               __entry->workqueue      = pwq->wq;
+               __entry->workqueue      = pwq->wq->name;
                __entry->req_cpu        = req_cpu;
                __entry->cpu            = pwq->pool->cpu;
        ),
 
-       TP_printk("work struct=%p function=%ps workqueue=%p req_cpu=%u cpu=%u",
+       TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%u cpu=%u",
                  __entry->work, __entry->function, __entry->workqueue,
                  __entry->req_cpu, __entry->cpu)
 );