linux/include/trace/events/workqueue.h
<<
>>
Prefs
   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>
 101