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 /* 13 * Safe only for call sites which are guaranteed to not race with fence 14 * signaling,holding the fence->lock and having checked for not signaled, or the 15 * signaling path itself. 16 */ 17 DECLARE_EVENT_CLASS(dma_fence, 18 19 TP_PROTO(struct dma_fence *fence), 20 21 TP_ARGS(fence), 22 23 TP_STRUCT__entry( 24 __string(driver, fence->ops->get_driver_name(fence)) 25 __string(timeline, fence->ops->get_timeline_name(fence)) 26 __field(unsigned int, context) 27 __field(unsigned int, seqno) 28 ), 29 30 TP_fast_assign( 31 __assign_str(driver); 32 __assign_str(timeline); 33 __entry->context = fence->context; 34 __entry->seqno = fence->seqno; 35 ), 36 37 TP_printk("driver=%s timeline=%s context=%u seqno=%u", 38 __get_str(driver), __get_str(timeline), __entry->context, 39 __entry->seqno) 40 ); 41 42 DEFINE_EVENT(dma_fence, dma_fence_emit, 43 44 TP_PROTO(struct dma_fence *fence), 45 46 TP_ARGS(fence) 47 ); 48 49 DEFINE_EVENT(dma_fence, dma_fence_init, 50 51 TP_PROTO(struct dma_fence *fence), 52 53 TP_ARGS(fence) 54 ); 55 56 DEFINE_EVENT(dma_fence, dma_fence_destroy, 57 58 TP_PROTO(struct dma_fence *fence), 59 60 TP_ARGS(fence) 61 ); 62 63 DEFINE_EVENT(dma_fence, dma_fence_enable_signal, 64 65 TP_PROTO(struct dma_fence *fence), 66 67 TP_ARGS(fence) 68 ); 69 70 DEFINE_EVENT(dma_fence, dma_fence_signaled, 71 72 TP_PROTO(struct dma_fence *fence), 73 74 TP_ARGS(fence) 75 ); 76 77 DEFINE_EVENT(dma_fence, dma_fence_wait_start, 78 79 TP_PROTO(struct dma_fence *fence), 80 81 TP_ARGS(fence) 82 ); 83 84 DEFINE_EVENT(dma_fence, dma_fence_wait_end, 85 86 TP_PROTO(struct dma_fence *fence), 87 88 TP_ARGS(fence) 89 ); 90 91 #endif /* _TRACE_DMA_FENCE_H */ 92 93 /* This part must be outside protection */ 94 #include <trace/define_trace.h> 95