2 #define TRACE_SYSTEM workqueue
4 #if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_WORKQUEUE_H
7 #include <linux/workqueue.h>
8 #include <linux/sched.h>
9 #include <linux/tracepoint.h>
11 TRACE_EVENT(workqueue_insertion
,
13 TP_PROTO(struct task_struct
*wq_thread
, struct work_struct
*work
),
15 TP_ARGS(wq_thread
, work
),
18 __array(char, thread_comm
, TASK_COMM_LEN
)
19 __field(pid_t
, thread_pid
)
20 __field(work_func_t
, func
)
24 memcpy(__entry
->thread_comm
, wq_thread
->comm
, TASK_COMM_LEN
);
25 __entry
->thread_pid
= wq_thread
->pid
;
26 __entry
->func
= work
->func
;
29 TP_printk("thread=%s:%d func=%pf", __entry
->thread_comm
,
30 __entry
->thread_pid
, __entry
->func
)
33 TRACE_EVENT(workqueue_execution
,
35 TP_PROTO(struct task_struct
*wq_thread
, struct work_struct
*work
),
37 TP_ARGS(wq_thread
, work
),
40 __array(char, thread_comm
, TASK_COMM_LEN
)
41 __field(pid_t
, thread_pid
)
42 __field(work_func_t
, func
)
46 memcpy(__entry
->thread_comm
, wq_thread
->comm
, TASK_COMM_LEN
);
47 __entry
->thread_pid
= wq_thread
->pid
;
48 __entry
->func
= work
->func
;
51 TP_printk("thread=%s:%d func=%pf", __entry
->thread_comm
,
52 __entry
->thread_pid
, __entry
->func
)
55 /* Trace the creation of one workqueue thread on a cpu */
56 TRACE_EVENT(workqueue_creation
,
58 TP_PROTO(struct task_struct
*wq_thread
, int cpu
),
60 TP_ARGS(wq_thread
, cpu
),
63 __array(char, thread_comm
, TASK_COMM_LEN
)
64 __field(pid_t
, thread_pid
)
69 memcpy(__entry
->thread_comm
, wq_thread
->comm
, TASK_COMM_LEN
);
70 __entry
->thread_pid
= wq_thread
->pid
;
74 TP_printk("thread=%s:%d cpu=%d", __entry
->thread_comm
,
75 __entry
->thread_pid
, __entry
->cpu
)
78 TRACE_EVENT(workqueue_destruction
,
80 TP_PROTO(struct task_struct
*wq_thread
),
85 __array(char, thread_comm
, TASK_COMM_LEN
)
86 __field(pid_t
, thread_pid
)
90 memcpy(__entry
->thread_comm
, wq_thread
->comm
, TASK_COMM_LEN
);
91 __entry
->thread_pid
= wq_thread
->pid
;
94 TP_printk("thread=%s:%d", __entry
->thread_comm
, __entry
->thread_pid
)
97 #endif /* _TRACE_WORKQUEUE_H */
99 /* This part must be outside protection */
100 #include <trace/define_trace.h>