Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / trace / events / fence.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM fence
3
4 #if !defined(_TRACE_FENCE_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_FENCE_H
6
7 #include <linux/tracepoint.h>
8
9 struct fence;
10
11 TRACE_EVENT(fence_annotate_wait_on,
12
13         /* fence: the fence waiting on f1, f1: the fence to be waited on. */
14         TP_PROTO(struct fence *fence, struct fence *f1),
15
16         TP_ARGS(fence, f1),
17
18         TP_STRUCT__entry(
19                 __string(driver, fence->ops->get_driver_name(fence))
20                 __string(timeline, fence->ops->get_driver_name(fence))
21                 __field(unsigned int, context)
22                 __field(unsigned int, seqno)
23
24                 __string(waiting_driver, f1->ops->get_driver_name(f1))
25                 __string(waiting_timeline, f1->ops->get_timeline_name(f1))
26                 __field(unsigned int, waiting_context)
27                 __field(unsigned int, waiting_seqno)
28         ),
29
30         TP_fast_assign(
31                 __assign_str(driver, fence->ops->get_driver_name(fence))
32                 __assign_str(timeline, fence->ops->get_timeline_name(fence))
33                 __entry->context = fence->context;
34                 __entry->seqno = fence->seqno;
35
36                 __assign_str(waiting_driver, f1->ops->get_driver_name(f1))
37                 __assign_str(waiting_timeline, f1->ops->get_timeline_name(f1))
38                 __entry->waiting_context = f1->context;
39                 __entry->waiting_seqno = f1->seqno;
40
41         ),
42
43         TP_printk("driver=%s timeline=%s context=%u seqno=%u "  \
44                   "waits on driver=%s timeline=%s context=%u seqno=%u",
45                   __get_str(driver), __get_str(timeline), __entry->context,
46                   __entry->seqno,
47                   __get_str(waiting_driver), __get_str(waiting_timeline),
48                   __entry->waiting_context, __entry->waiting_seqno)
49 );
50
51 DECLARE_EVENT_CLASS(fence,
52
53         TP_PROTO(struct fence *fence),
54
55         TP_ARGS(fence),
56
57         TP_STRUCT__entry(
58                 __string(driver, fence->ops->get_driver_name(fence))
59                 __string(timeline, fence->ops->get_timeline_name(fence))
60                 __field(unsigned int, context)
61                 __field(unsigned int, seqno)
62         ),
63
64         TP_fast_assign(
65                 __assign_str(driver, fence->ops->get_driver_name(fence))
66                 __assign_str(timeline, fence->ops->get_timeline_name(fence))
67                 __entry->context = fence->context;
68                 __entry->seqno = fence->seqno;
69         ),
70
71         TP_printk("driver=%s timeline=%s context=%u seqno=%u",
72                   __get_str(driver), __get_str(timeline), __entry->context,
73                   __entry->seqno)
74 );
75
76 DEFINE_EVENT(fence, fence_emit,
77
78         TP_PROTO(struct fence *fence),
79
80         TP_ARGS(fence)
81 );
82
83 DEFINE_EVENT(fence, fence_init,
84
85         TP_PROTO(struct fence *fence),
86
87         TP_ARGS(fence)
88 );
89
90 DEFINE_EVENT(fence, fence_destroy,
91
92         TP_PROTO(struct fence *fence),
93
94         TP_ARGS(fence)
95 );
96
97 DEFINE_EVENT(fence, fence_enable_signal,
98
99         TP_PROTO(struct fence *fence),
100
101         TP_ARGS(fence)
102 );
103
104 DEFINE_EVENT(fence, fence_signaled,
105
106         TP_PROTO(struct fence *fence),
107
108         TP_ARGS(fence)
109 );
110
111 DEFINE_EVENT(fence, fence_wait_start,
112
113         TP_PROTO(struct fence *fence),
114
115         TP_ARGS(fence)
116 );
117
118 DEFINE_EVENT(fence, fence_wait_end,
119
120         TP_PROTO(struct fence *fence),
121
122         TP_ARGS(fence)
123 );
124
125 #endif /*  _TRACE_FENCE_H */
126
127 /* This part must be outside protection */
128 #include <trace/define_trace.h>