1 #if !defined(_I915_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
4 #include <linux/stringify.h>
5 #include <linux/types.h>
6 #include <linux/tracepoint.h>
11 #define TRACE_SYSTEM i915
12 #define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
13 #define TRACE_INCLUDE_FILE i915_trace
17 TRACE_EVENT(i915_gem_object_create
,
19 TP_PROTO(struct drm_gem_object
*obj
),
24 __field(struct drm_gem_object
*, obj
)
30 __entry
->size
= obj
->size
;
33 TP_printk("obj=%p, size=%u", __entry
->obj
, __entry
->size
)
36 TRACE_EVENT(i915_gem_object_bind
,
38 TP_PROTO(struct drm_gem_object
*obj
, u32 gtt_offset
),
40 TP_ARGS(obj
, gtt_offset
),
43 __field(struct drm_gem_object
*, obj
)
44 __field(u32
, gtt_offset
)
49 __entry
->gtt_offset
= gtt_offset
;
52 TP_printk("obj=%p, gtt_offset=%08x",
53 __entry
->obj
, __entry
->gtt_offset
)
56 TRACE_EVENT(i915_gem_object_change_domain
,
58 TP_PROTO(struct drm_gem_object
*obj
, uint32_t old_read_domains
, uint32_t old_write_domain
),
60 TP_ARGS(obj
, old_read_domains
, old_write_domain
),
63 __field(struct drm_gem_object
*, obj
)
64 __field(u32
, read_domains
)
65 __field(u32
, write_domain
)
70 __entry
->read_domains
= obj
->read_domains
| (old_read_domains
<< 16);
71 __entry
->write_domain
= obj
->write_domain
| (old_write_domain
<< 16);
74 TP_printk("obj=%p, read=%04x, write=%04x",
76 __entry
->read_domains
, __entry
->write_domain
)
79 TRACE_EVENT(i915_gem_object_get_fence
,
81 TP_PROTO(struct drm_gem_object
*obj
, int fence
, int tiling_mode
),
83 TP_ARGS(obj
, fence
, tiling_mode
),
86 __field(struct drm_gem_object
*, obj
)
88 __field(int, tiling_mode
)
93 __entry
->fence
= fence
;
94 __entry
->tiling_mode
= tiling_mode
;
97 TP_printk("obj=%p, fence=%d, tiling=%d",
98 __entry
->obj
, __entry
->fence
, __entry
->tiling_mode
)
101 DECLARE_EVENT_CLASS(i915_gem_object
,
103 TP_PROTO(struct drm_gem_object
*obj
),
108 __field(struct drm_gem_object
*, obj
)
115 TP_printk("obj=%p", __entry
->obj
)
118 DEFINE_EVENT(i915_gem_object
, i915_gem_object_clflush
,
120 TP_PROTO(struct drm_gem_object
*obj
),
125 DEFINE_EVENT(i915_gem_object
, i915_gem_object_unbind
,
127 TP_PROTO(struct drm_gem_object
*obj
),
132 DEFINE_EVENT(i915_gem_object
, i915_gem_object_destroy
,
134 TP_PROTO(struct drm_gem_object
*obj
),
141 TRACE_EVENT(i915_gem_request_submit
,
143 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
153 __entry
->dev
= dev
->primary
->index
;
154 __entry
->seqno
= seqno
;
155 i915_trace_irq_get(dev
, seqno
);
158 TP_printk("dev=%u, seqno=%u", __entry
->dev
, __entry
->seqno
)
161 TRACE_EVENT(i915_gem_request_flush
,
163 TP_PROTO(struct drm_device
*dev
, u32 seqno
,
164 u32 flush_domains
, u32 invalidate_domains
),
166 TP_ARGS(dev
, seqno
, flush_domains
, invalidate_domains
),
171 __field(u32
, flush_domains
)
172 __field(u32
, invalidate_domains
)
176 __entry
->dev
= dev
->primary
->index
;
177 __entry
->seqno
= seqno
;
178 __entry
->flush_domains
= flush_domains
;
179 __entry
->invalidate_domains
= invalidate_domains
;
182 TP_printk("dev=%u, seqno=%u, flush=%04x, invalidate=%04x",
183 __entry
->dev
, __entry
->seqno
,
184 __entry
->flush_domains
, __entry
->invalidate_domains
)
187 DECLARE_EVENT_CLASS(i915_gem_request
,
189 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
199 __entry
->dev
= dev
->primary
->index
;
200 __entry
->seqno
= seqno
;
203 TP_printk("dev=%u, seqno=%u", __entry
->dev
, __entry
->seqno
)
206 DEFINE_EVENT(i915_gem_request
, i915_gem_request_complete
,
208 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
213 DEFINE_EVENT(i915_gem_request
, i915_gem_request_retire
,
215 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
220 DEFINE_EVENT(i915_gem_request
, i915_gem_request_wait_begin
,
222 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
227 DEFINE_EVENT(i915_gem_request
, i915_gem_request_wait_end
,
229 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
234 DECLARE_EVENT_CLASS(i915_ring
,
236 TP_PROTO(struct drm_device
*dev
),
245 __entry
->dev
= dev
->primary
->index
;
248 TP_printk("dev=%u", __entry
->dev
)
251 DEFINE_EVENT(i915_ring
, i915_ring_wait_begin
,
253 TP_PROTO(struct drm_device
*dev
),
258 DEFINE_EVENT(i915_ring
, i915_ring_wait_end
,
260 TP_PROTO(struct drm_device
*dev
),
265 TRACE_EVENT(i915_flip_request
,
266 TP_PROTO(int plane
, struct drm_gem_object
*obj
),
272 __field(struct drm_gem_object
*, obj
)
276 __entry
->plane
= plane
;
280 TP_printk("plane=%d, obj=%p", __entry
->plane
, __entry
->obj
)
283 TRACE_EVENT(i915_flip_complete
,
284 TP_PROTO(int plane
, struct drm_gem_object
*obj
),
290 __field(struct drm_gem_object
*, obj
)
294 __entry
->plane
= plane
;
298 TP_printk("plane=%d, obj=%p", __entry
->plane
, __entry
->obj
)
301 #endif /* _I915_TRACE_H_ */
303 /* This part must be outside protection */
304 #undef TRACE_INCLUDE_PATH
305 #define TRACE_INCLUDE_PATH .
306 #include <trace/define_trace.h>