xref: /linux/include/trace/events/dma_fence.h (revision 6e9a12f85a7567bb9a41d5230468886bd6a27b20)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM dma_fence
4 
5 #if !defined(_TRACE_DMA_FENCE_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_DMA_FENCE_H
7 
8 #include <linux/tracepoint.h>
9 
10 struct dma_fence;
11 
12 DECLARE_EVENT_CLASS(dma_fence,
13 
14 	TP_PROTO(struct dma_fence *fence),
15 
16 	TP_ARGS(fence),
17 
18 	TP_STRUCT__entry(
19 		__string(driver, dma_fence_driver_name(fence))
20 		__string(timeline, dma_fence_timeline_name(fence))
21 		__field(unsigned int, context)
22 		__field(unsigned int, seqno)
23 	),
24 
25 	TP_fast_assign(
26 		__assign_str(driver);
27 		__assign_str(timeline);
28 		__entry->context = fence->context;
29 		__entry->seqno = fence->seqno;
30 	),
31 
32 	TP_printk("driver=%s timeline=%s context=%u seqno=%u",
33 		  __get_str(driver), __get_str(timeline), __entry->context,
34 		  __entry->seqno)
35 );
36 
37 /*
38  * Safe only for call sites which are guaranteed to not race with fence
39  * signaling,holding the fence->lock and having checked for not signaled, or the
40  * signaling path itself.
41  */
42 DECLARE_EVENT_CLASS(dma_fence_unsignaled,
43 
44 	TP_PROTO(struct dma_fence *fence),
45 
46 	TP_ARGS(fence),
47 
48 	TP_STRUCT__entry(
49 		__string(driver, fence->ops->get_driver_name(fence))
50 		__string(timeline, fence->ops->get_timeline_name(fence))
51 		__field(unsigned int, context)
52 		__field(unsigned int, seqno)
53 	),
54 
55 	TP_fast_assign(
56 		__assign_str(driver);
57 		__assign_str(timeline);
58 		__entry->context = fence->context;
59 		__entry->seqno = fence->seqno;
60 	),
61 
62 	TP_printk("driver=%s timeline=%s context=%u seqno=%u",
63 		  __get_str(driver), __get_str(timeline), __entry->context,
64 		  __entry->seqno)
65 );
66 
67 DEFINE_EVENT(dma_fence_unsignaled, dma_fence_emit,
68 
69 	TP_PROTO(struct dma_fence *fence),
70 
71 	TP_ARGS(fence)
72 );
73 
74 DEFINE_EVENT(dma_fence_unsignaled, dma_fence_init,
75 
76 	TP_PROTO(struct dma_fence *fence),
77 
78 	TP_ARGS(fence)
79 );
80 
81 DEFINE_EVENT(dma_fence, dma_fence_destroy,
82 
83 	TP_PROTO(struct dma_fence *fence),
84 
85 	TP_ARGS(fence)
86 );
87 
88 DEFINE_EVENT(dma_fence_unsignaled, dma_fence_enable_signal,
89 
90 	TP_PROTO(struct dma_fence *fence),
91 
92 	TP_ARGS(fence)
93 );
94 
95 DEFINE_EVENT(dma_fence_unsignaled, dma_fence_signaled,
96 
97 	TP_PROTO(struct dma_fence *fence),
98 
99 	TP_ARGS(fence)
100 );
101 
102 DEFINE_EVENT(dma_fence, dma_fence_wait_start,
103 
104 	TP_PROTO(struct dma_fence *fence),
105 
106 	TP_ARGS(fence)
107 );
108 
109 DEFINE_EVENT(dma_fence, dma_fence_wait_end,
110 
111 	TP_PROTO(struct dma_fence *fence),
112 
113 	TP_ARGS(fence)
114 );
115 
116 #endif /*  _TRACE_DMA_FENCE_H */
117 
118 /* This part must be outside protection */
119 #include <trace/define_trace.h>
120