1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM dma_fence 3 4 #if !defined(_TRACE_FENCE_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_DMA_FENCE_H 6 7 #include <linux/tracepoint.h> 8 9 struct dma_fence; 10 11 TRACE_EVENT(dma_fence_annotate_wait_on, 12 13 /* fence: the fence waiting on f1, f1: the fence to be waited on. */ 14 TP_PROTO(struct dma_fence *fence, struct dma_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_timeline_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(dma_fence, 52 53 TP_PROTO(struct dma_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(dma_fence, dma_fence_emit, 77 78 TP_PROTO(struct dma_fence *fence), 79 80 TP_ARGS(fence) 81 ); 82 83 DEFINE_EVENT(dma_fence, dma_fence_init, 84 85 TP_PROTO(struct dma_fence *fence), 86 87 TP_ARGS(fence) 88 ); 89 90 DEFINE_EVENT(dma_fence, dma_fence_destroy, 91 92 TP_PROTO(struct dma_fence *fence), 93 94 TP_ARGS(fence) 95 ); 96 97 DEFINE_EVENT(dma_fence, dma_fence_enable_signal, 98 99 TP_PROTO(struct dma_fence *fence), 100 101 TP_ARGS(fence) 102 ); 103 104 DEFINE_EVENT(dma_fence, dma_fence_signaled, 105 106 TP_PROTO(struct dma_fence *fence), 107 108 TP_ARGS(fence) 109 ); 110 111 DEFINE_EVENT(dma_fence, dma_fence_wait_start, 112 113 TP_PROTO(struct dma_fence *fence), 114 115 TP_ARGS(fence) 116 ); 117 118 DEFINE_EVENT(dma_fence, dma_fence_wait_end, 119 120 TP_PROTO(struct dma_fence *fence), 121 122 TP_ARGS(fence) 123 ); 124 125 #endif /* _TRACE_DMA_FENCE_H */ 126 127 /* This part must be outside protection */ 128 #include <trace/define_trace.h> 129