]> git.karo-electronics.de Git - mv-sheeva.git/blob - include/trace/events/workqueue.h
ALSA: hda - Fix / improve ALC66x parser
[mv-sheeva.git] / include / trace / events / workqueue.h
1 #if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ)
2 #define _TRACE_WORKQUEUE_H
3
4 #include <linux/workqueue.h>
5 #include <linux/sched.h>
6 #include <linux/tracepoint.h>
7
8 #undef TRACE_SYSTEM
9 #define TRACE_SYSTEM workqueue
10
11 TRACE_EVENT(workqueue_insertion,
12
13         TP_PROTO(struct task_struct *wq_thread, struct work_struct *work),
14
15         TP_ARGS(wq_thread, work),
16
17         TP_STRUCT__entry(
18                 __array(char,           thread_comm,    TASK_COMM_LEN)
19                 __field(pid_t,          thread_pid)
20                 __field(work_func_t,    func)
21         ),
22
23         TP_fast_assign(
24                 memcpy(__entry->thread_comm, wq_thread->comm, TASK_COMM_LEN);
25                 __entry->thread_pid     = wq_thread->pid;
26                 __entry->func           = work->func;
27         ),
28
29         TP_printk("thread=%s:%d func=%pF", __entry->thread_comm,
30                 __entry->thread_pid, __entry->func)
31 );
32
33 TRACE_EVENT(workqueue_execution,
34
35         TP_PROTO(struct task_struct *wq_thread, struct work_struct *work),
36
37         TP_ARGS(wq_thread, work),
38
39         TP_STRUCT__entry(
40                 __array(char,           thread_comm,    TASK_COMM_LEN)
41                 __field(pid_t,          thread_pid)
42                 __field(work_func_t,    func)
43         ),
44
45         TP_fast_assign(
46                 memcpy(__entry->thread_comm, wq_thread->comm, TASK_COMM_LEN);
47                 __entry->thread_pid     = wq_thread->pid;
48                 __entry->func           = work->func;
49         ),
50
51         TP_printk("thread=%s:%d func=%pF", __entry->thread_comm,
52                 __entry->thread_pid, __entry->func)
53 );
54
55 /* Trace the creation of one workqueue thread on a cpu */
56 TRACE_EVENT(workqueue_creation,
57
58         TP_PROTO(struct task_struct *wq_thread, int cpu),
59
60         TP_ARGS(wq_thread, cpu),
61
62         TP_STRUCT__entry(
63                 __array(char,   thread_comm,    TASK_COMM_LEN)
64                 __field(pid_t,  thread_pid)
65                 __field(int,    cpu)
66         ),
67
68         TP_fast_assign(
69                 memcpy(__entry->thread_comm, wq_thread->comm, TASK_COMM_LEN);
70                 __entry->thread_pid     = wq_thread->pid;
71                 __entry->cpu            = cpu;
72         ),
73
74         TP_printk("thread=%s:%d cpu=%d", __entry->thread_comm,
75                 __entry->thread_pid, __entry->cpu)
76 );
77
78 TRACE_EVENT(workqueue_destruction,
79
80         TP_PROTO(struct task_struct *wq_thread),
81
82         TP_ARGS(wq_thread),
83
84         TP_STRUCT__entry(
85                 __array(char,   thread_comm,    TASK_COMM_LEN)
86                 __field(pid_t,  thread_pid)
87         ),
88
89         TP_fast_assign(
90                 memcpy(__entry->thread_comm, wq_thread->comm, TASK_COMM_LEN);
91                 __entry->thread_pid     = wq_thread->pid;
92         ),
93
94         TP_printk("thread=%s:%d", __entry->thread_comm, __entry->thread_pid)
95 );
96
97 #endif /* _TRACE_WORKQUEUE_H */
98
99 /* This part must be outside protection */
100 #include <trace/define_trace.h>