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

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

Version: ~ [ linux-4.20-rc2 ] ~ [ linux-4.19.1 ] ~ [ linux-4.18.18 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.80 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.136 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.163 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.125 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.60 ] ~ [ 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-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.39.4 ] ~ [ linux-2.6.38.8 ] ~ [ linux-2.6.37.6 ] ~ [ linux-2.6.36.4 ] ~ [ linux-2.6.35.14 ] ~ [ linux-2.6.34.15 ] ~ [ linux-2.6.33.20 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.31.14 ] ~ [ linux-2.6.30.10 ] ~ [ linux-2.6.29.6 ] ~ [ linux-2.6.28.10 ] ~ [ linux-2.6.27.62 ] ~ [ 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 /* SPDX-License-Identifier: GPL-2.0 */
  2 #undef TRACE_SYSTEM
  3 #define TRACE_SYSTEM workqueue
  4 
  5 #if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ)
  6 #define _TRACE_WORKQUEUE_H
  7 
  8 #include <linux/tracepoint.h>
  9 #include <linux/workqueue.h>
 10 
 11 DECLARE_EVENT_CLASS(workqueue_work,
 12 
 13         TP_PROTO(struct work_struct *work),
 14 
 15         TP_ARGS(work),
 16 
 17         TP_STRUCT__entry(
 18                 __field( void *,        work    )
 19         ),
 20 
 21         TP_fast_assign(
 22                 __entry->work           = work;
 23         ),
 24 
 25         TP_printk("work struct %p", __entry->work)
 26 );
 27 
 28 struct pool_workqueue;
 29 
 30 /**
 31  * workqueue_queue_work - called when a work gets queued
 32  * @req_cpu:    the requested cpu
 33  * @pwq:        pointer to struct pool_workqueue
 34  * @work:       pointer to struct work_struct
 35  *
 36  * This event occurs when a work is queued immediately or once a
 37  * delayed work is actually queued on a workqueue (ie: once the delay
 38  * has been reached).
 39  */
 40 TRACE_EVENT(workqueue_queue_work,
 41 
 42         TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq,
 43                  struct work_struct *work),
 44 
 45         TP_ARGS(req_cpu, pwq, work),
 46 
 47         TP_STRUCT__entry(
 48                 __field( void *,        work    )
 49                 __field( void *,        function)
 50                 __field( void *,        workqueue)
 51                 __field( unsigned int,  req_cpu )
 52                 __field( unsigned int,  cpu     )
 53         ),
 54 
 55         TP_fast_assign(
 56                 __entry->work           = work;
 57                 __entry->function       = work->func;
 58                 __entry->workqueue      = pwq->wq;
 59                 __entry->req_cpu        = req_cpu;
 60                 __entry->cpu            = pwq->pool->cpu;
 61         ),
 62 
 63         TP_printk("work struct=%p function=%pf workqueue=%p req_cpu=%u cpu=%u",
 64                   __entry->work, __entry->function, __entry->workqueue,
 65                   __entry->req_cpu, __entry->cpu)
 66 );
 67 
 68 /**
 69  * workqueue_activate_work - called when a work gets activated
 70  * @work:       pointer to struct work_struct
 71  *
 72  * This event occurs when a queued work is put on the active queue,
 73  * which happens immediately after queueing unless @max_active limit
 74  * is reached.
 75  */
 76 DEFINE_EVENT(workqueue_work, workqueue_activate_work,
 77 
 78         TP_PROTO(struct work_struct *work),
 79 
 80         TP_ARGS(work)
 81 );
 82 
 83 /**
 84  * workqueue_execute_start - called immediately before the workqueue callback
 85  * @work:       pointer to struct work_struct
 86  *
 87  * Allows to track workqueue execution.
 88  */
 89 TRACE_EVENT(workqueue_execute_start,
 90 
 91         TP_PROTO(struct work_struct *work),
 92 
 93         TP_ARGS(work),
 94 
 95         TP_STRUCT__entry(
 96                 __field( void *,        work    )
 97                 __field( void *,        function)
 98         ),
 99 
100         TP_fast_assign(
101                 __entry->work           = work;
102                 __entry->function       = work->func;
103         ),
104 
105         TP_printk("work struct %p: function %pf", __entry->work, __entry->function)
106 );
107 
108 /**
109  * workqueue_execute_end - called immediately after the workqueue callback
110  * @work:       pointer to struct work_struct
111  *
112  * Allows to track workqueue execution.
113  */
114 DEFINE_EVENT(workqueue_work, workqueue_execute_end,
115 
116         TP_PROTO(struct work_struct *work),
117 
118         TP_ARGS(work)
119 );
120 
121 #endif /*  _TRACE_WORKQUEUE_H */
122 
123 /* This part must be outside protection */
124 #include <trace/define_trace.h>
125 

~ [ 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