Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
workqueue.h
Go to the documentation of this file.
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM workqueue
3 
4 #if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_WORKQUEUE_H
6 
7 #include <linux/tracepoint.h>
8 #include <linux/workqueue.h>
9 
10 DECLARE_EVENT_CLASS(workqueue_work,
11 
12  TP_PROTO(struct work_struct *work),
13 
14  TP_ARGS(work),
15 
17  __field( void *, work )
18  ),
19 
21  __entry->work = work;
22  ),
23 
24  TP_printk("work struct %p", __entry->work)
25 );
26 
37 TRACE_EVENT(workqueue_queue_work,
38 
39  TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq,
40  struct work_struct *work),
41 
42  TP_ARGS(req_cpu, cwq, work),
43 
45  __field( void *, work )
46  __field( void *, function)
47  __field( void *, workqueue)
48  __field( unsigned int, req_cpu )
49  __field( unsigned int, cpu )
50  ),
51 
53  __entry->work = work;
54  __entry->function = work->func;
55  __entry->workqueue = cwq->wq;
56  __entry->req_cpu = req_cpu;
57  __entry->cpu = cwq->pool->gcwq->cpu;
58  ),
59 
60  TP_printk("work struct=%p function=%pf workqueue=%p req_cpu=%u cpu=%u",
61  __entry->work, __entry->function, __entry->workqueue,
62  __entry->req_cpu, __entry->cpu)
63 );
64 
73 DEFINE_EVENT(workqueue_work, workqueue_activate_work,
74 
75  TP_PROTO(struct work_struct *work),
76 
77  TP_ARGS(work)
78 );
79 
86 TRACE_EVENT(workqueue_execute_start,
87 
88  TP_PROTO(struct work_struct *work),
89 
90  TP_ARGS(work),
91 
93  __field( void *, work )
94  __field( void *, function)
95  ),
96 
98  __entry->work = work;
99  __entry->function = work->func;
100  ),
101 
102  TP_printk("work struct %p: function %pf", __entry->work, __entry->function)
103 );
104 
111 DEFINE_EVENT(workqueue_work, workqueue_execute_end,
112 
113  TP_PROTO(struct work_struct *work),
114 
115  TP_ARGS(work)
116 );
117 
118 #endif /* _TRACE_WORKQUEUE_H */
119 
120 /* This part must be outside protection */
121 #include <trace/define_trace.h>