at v2.6.35 2.1 kB view raw
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/workqueue.h> 8#include <linux/sched.h> 9#include <linux/tracepoint.h> 10 11DECLARE_EVENT_CLASS(workqueue, 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 33DEFINE_EVENT(workqueue, workqueue_insertion, 34 35 TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), 36 37 TP_ARGS(wq_thread, work) 38); 39 40DEFINE_EVENT(workqueue, workqueue_execution, 41 42 TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), 43 44 TP_ARGS(wq_thread, work) 45); 46 47/* Trace the creation of one workqueue thread on a cpu */ 48TRACE_EVENT(workqueue_creation, 49 50 TP_PROTO(struct task_struct *wq_thread, int cpu), 51 52 TP_ARGS(wq_thread, cpu), 53 54 TP_STRUCT__entry( 55 __array(char, thread_comm, TASK_COMM_LEN) 56 __field(pid_t, thread_pid) 57 __field(int, cpu) 58 ), 59 60 TP_fast_assign( 61 memcpy(__entry->thread_comm, wq_thread->comm, TASK_COMM_LEN); 62 __entry->thread_pid = wq_thread->pid; 63 __entry->cpu = cpu; 64 ), 65 66 TP_printk("thread=%s:%d cpu=%d", __entry->thread_comm, 67 __entry->thread_pid, __entry->cpu) 68); 69 70TRACE_EVENT(workqueue_destruction, 71 72 TP_PROTO(struct task_struct *wq_thread), 73 74 TP_ARGS(wq_thread), 75 76 TP_STRUCT__entry( 77 __array(char, thread_comm, TASK_COMM_LEN) 78 __field(pid_t, thread_pid) 79 ), 80 81 TP_fast_assign( 82 memcpy(__entry->thread_comm, wq_thread->comm, TASK_COMM_LEN); 83 __entry->thread_pid = wq_thread->pid; 84 ), 85 86 TP_printk("thread=%s:%d", __entry->thread_comm, __entry->thread_pid) 87); 88 89#endif /* _TRACE_WORKQUEUE_H */ 90 91/* This part must be outside protection */ 92#include <trace/define_trace.h>