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>
12 #define TRACE_SYSTEM i915
13 #define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
14 #define TRACE_INCLUDE_FILE i915_trace
18 TRACE_EVENT(i915_gem_object_create
,
20 TP_PROTO(struct drm_i915_gem_object
*obj
),
25 __field(struct drm_i915_gem_object
*, obj
)
31 __entry
->size
= obj
->base
.size
;
34 TP_printk("obj=%p, size=%u", __entry
->obj
, __entry
->size
)
37 TRACE_EVENT(i915_gem_object_bind
,
39 TP_PROTO(struct drm_i915_gem_object
*obj
, u32 gtt_offset
, bool mappable
),
41 TP_ARGS(obj
, gtt_offset
, mappable
),
44 __field(struct drm_i915_gem_object
*, obj
)
45 __field(u32
, gtt_offset
)
46 __field(bool, mappable
)
51 __entry
->gtt_offset
= gtt_offset
;
52 __entry
->mappable
= mappable
;
55 TP_printk("obj=%p, gtt_offset=%08x%s",
56 __entry
->obj
, __entry
->gtt_offset
,
57 __entry
->mappable
? ", mappable" : "")
60 TRACE_EVENT(i915_gem_object_change_domain
,
62 TP_PROTO(struct drm_i915_gem_object
*obj
, uint32_t old_read_domains
, uint32_t old_write_domain
),
64 TP_ARGS(obj
, old_read_domains
, old_write_domain
),
67 __field(struct drm_i915_gem_object
*, obj
)
68 __field(u32
, read_domains
)
69 __field(u32
, write_domain
)
74 __entry
->read_domains
= obj
->base
.read_domains
| (old_read_domains
<< 16);
75 __entry
->write_domain
= obj
->base
.write_domain
| (old_write_domain
<< 16);
78 TP_printk("obj=%p, read=%04x, write=%04x",
80 __entry
->read_domains
, __entry
->write_domain
)
83 TRACE_EVENT(i915_gem_object_get_fence
,
85 TP_PROTO(struct drm_i915_gem_object
*obj
, int fence
, int tiling_mode
),
87 TP_ARGS(obj
, fence
, tiling_mode
),
90 __field(struct drm_i915_gem_object
*, obj
)
92 __field(int, tiling_mode
)
97 __entry
->fence
= fence
;
98 __entry
->tiling_mode
= tiling_mode
;
101 TP_printk("obj=%p, fence=%d, tiling=%d",
102 __entry
->obj
, __entry
->fence
, __entry
->tiling_mode
)
105 DECLARE_EVENT_CLASS(i915_gem_object
,
107 TP_PROTO(struct drm_i915_gem_object
*obj
),
112 __field(struct drm_i915_gem_object
*, obj
)
119 TP_printk("obj=%p", __entry
->obj
)
122 DEFINE_EVENT(i915_gem_object
, i915_gem_object_clflush
,
124 TP_PROTO(struct drm_i915_gem_object
*obj
),
129 DEFINE_EVENT(i915_gem_object
, i915_gem_object_unbind
,
131 TP_PROTO(struct drm_i915_gem_object
*obj
),
136 DEFINE_EVENT(i915_gem_object
, i915_gem_object_destroy
,
138 TP_PROTO(struct drm_i915_gem_object
*obj
),
145 TRACE_EVENT(i915_gem_request_submit
,
147 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
157 __entry
->dev
= dev
->primary
->index
;
158 __entry
->seqno
= seqno
;
159 i915_trace_irq_get(dev
, seqno
);
162 TP_printk("dev=%u, seqno=%u", __entry
->dev
, __entry
->seqno
)
165 TRACE_EVENT(i915_gem_request_flush
,
167 TP_PROTO(struct drm_device
*dev
, u32 seqno
,
168 u32 flush_domains
, u32 invalidate_domains
),
170 TP_ARGS(dev
, seqno
, flush_domains
, invalidate_domains
),
175 __field(u32
, flush_domains
)
176 __field(u32
, invalidate_domains
)
180 __entry
->dev
= dev
->primary
->index
;
181 __entry
->seqno
= seqno
;
182 __entry
->flush_domains
= flush_domains
;
183 __entry
->invalidate_domains
= invalidate_domains
;
186 TP_printk("dev=%u, seqno=%u, flush=%04x, invalidate=%04x",
187 __entry
->dev
, __entry
->seqno
,
188 __entry
->flush_domains
, __entry
->invalidate_domains
)
191 DECLARE_EVENT_CLASS(i915_gem_request
,
193 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
203 __entry
->dev
= dev
->primary
->index
;
204 __entry
->seqno
= seqno
;
207 TP_printk("dev=%u, seqno=%u", __entry
->dev
, __entry
->seqno
)
210 DEFINE_EVENT(i915_gem_request
, i915_gem_request_complete
,
212 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
217 DEFINE_EVENT(i915_gem_request
, i915_gem_request_retire
,
219 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
224 DEFINE_EVENT(i915_gem_request
, i915_gem_request_wait_begin
,
226 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
231 DEFINE_EVENT(i915_gem_request
, i915_gem_request_wait_end
,
233 TP_PROTO(struct drm_device
*dev
, u32 seqno
),
238 DECLARE_EVENT_CLASS(i915_ring
,
240 TP_PROTO(struct drm_device
*dev
),
249 __entry
->dev
= dev
->primary
->index
;
252 TP_printk("dev=%u", __entry
->dev
)
255 DEFINE_EVENT(i915_ring
, i915_ring_wait_begin
,
257 TP_PROTO(struct drm_device
*dev
),
262 DEFINE_EVENT(i915_ring
, i915_ring_wait_end
,
264 TP_PROTO(struct drm_device
*dev
),
269 TRACE_EVENT(i915_flip_request
,
270 TP_PROTO(int plane
, struct drm_i915_gem_object
*obj
),
276 __field(struct drm_i915_gem_object
*, obj
)
280 __entry
->plane
= plane
;
284 TP_printk("plane=%d, obj=%p", __entry
->plane
, __entry
->obj
)
287 TRACE_EVENT(i915_flip_complete
,
288 TP_PROTO(int plane
, struct drm_i915_gem_object
*obj
),
294 __field(struct drm_i915_gem_object
*, obj
)
298 __entry
->plane
= plane
;
302 TP_printk("plane=%d, obj=%p", __entry
->plane
, __entry
->obj
)
305 TRACE_EVENT(i915_reg_rw
,
306 TP_PROTO(int cmd
, uint32_t reg
, uint64_t val
, int len
),
308 TP_ARGS(cmd
, reg
, val
, len
),
312 __field(uint32_t, reg
)
313 __field(uint64_t, val
)
320 __entry
->val
= (uint64_t)val
;
324 TP_printk("cmd=%c, reg=0x%x, val=0x%llx, len=%d",
325 __entry
->cmd
, __entry
->reg
, __entry
->val
, __entry
->len
)
328 #endif /* _I915_TRACE_H_ */
330 /* This part must be outside protection */
331 #undef TRACE_INCLUDE_PATH
332 #define TRACE_INCLUDE_PATH .
333 #include <trace/define_trace.h>