~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/trace/events/workqueue.h

Version: ~ [ linux-5.8-rc3 ] ~ [ linux-5.7.5 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.48 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.129 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.185 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.228 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.228 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 
 16         TP_STRUCT__entry(
 17                 __field( void *,        work    )
 18         ),
 19 
 20         TP_fast_assign(
 21                 __entry->work           = work;
 22         ),
 23 
 24         TP_printk("work struct %p", __entry->work)
 25 );
 26 
 27 /**
 28  * workqueue_queue_work - called when a work gets queued
 29  * @req_cpu:    the requested cpu
 30  * @pwq:        pointer to struct pool_workqueue
 31  * @work:       pointer to struct work_struct
 32  *
 33  * This event occurs when a work is queued immediately or once a
 34  * delayed work is actually queued on a workqueue (ie: once the delay
 35  * has been reached).
 36  */
 37 TRACE_EVENT(workqueue_queue_work,
 38 
 39         TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq,
 40                  struct work_struct *work),
 41 
 42         TP_ARGS(req_cpu, pwq, work),
 43 
 44         TP_STRUCT__entry(
 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 
 52         TP_fast_assign(
 53                 __entry->work           = work;
 54                 __entry->function       = work->func;
 55                 __entry->workqueue      = pwq->wq;
 56                 __entry->req_cpu        = req_cpu;
 57                 __entry->cpu            = pwq->pool->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 
 65 /**
 66  * workqueue_activate_work - called when a work gets activated
 67  * @work:       pointer to struct work_struct
 68  *
 69  * This event occurs when a queued work is put on the active queue,
 70  * which happens immediately after queueing unless @max_active limit
 71  * is reached.
 72  */
 73 DEFINE_EVENT(workqueue_work, workqueue_activate_work,
 74 
 75         TP_PROTO(struct work_struct *work),
 76 
 77         TP_ARGS(work)
 78 );
 79 
 80 /**
 81  * workqueue_execute_start - called immediately before the workqueue callback
 82  * @work:       pointer to struct work_struct
 83  *
 84  * Allows to track workqueue execution.
 85  */
 86 TRACE_EVENT(workqueue_execute_start,
 87 
 88         TP_PROTO(struct work_struct *work),
 89 
 90         TP_ARGS(work),
 91 
 92         TP_STRUCT__entry(
 93                 __field( void *,        work    )
 94                 __field( void *,        function)
 95         ),
 96 
 97         TP_fast_assign(
 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 
105 /**
106  * workqueue_execute_end - called immediately after the workqueue callback
107  * @work:       pointer to struct work_struct
108  *
109  * Allows to track workqueue execution.
110  */
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>
122 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp