at v2.6.32 2.3 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 11TRACE_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 33TRACE_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 */ 56TRACE_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 78TRACE_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>