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 DECLARE_EVENT_CLASS(i915_gem_object,
85 TP_PROTO(struct drm_i915_gem_object *obj),
90 __field(struct drm_i915_gem_object *, obj)
97 TP_printk("obj=%p", __entry->obj)
100 DEFINE_EVENT(i915_gem_object, i915_gem_object_clflush,
102 TP_PROTO(struct drm_i915_gem_object *obj),
107 DEFINE_EVENT(i915_gem_object, i915_gem_object_unbind,
109 TP_PROTO(struct drm_i915_gem_object *obj),
114 DEFINE_EVENT(i915_gem_object, i915_gem_object_destroy,
116 TP_PROTO(struct drm_i915_gem_object *obj),
123 TRACE_EVENT(i915_gem_request_submit,
125 TP_PROTO(struct drm_device *dev, u32 seqno),
135 __entry->dev = dev->primary->index;
136 __entry->seqno = seqno;
137 i915_trace_irq_get(dev, seqno);
140 TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
143 TRACE_EVENT(i915_gem_request_flush,
145 TP_PROTO(struct drm_device *dev, u32 seqno,
146 u32 flush_domains, u32 invalidate_domains),
148 TP_ARGS(dev, seqno, flush_domains, invalidate_domains),
153 __field(u32, flush_domains)
154 __field(u32, invalidate_domains)
158 __entry->dev = dev->primary->index;
159 __entry->seqno = seqno;
160 __entry->flush_domains = flush_domains;
161 __entry->invalidate_domains = invalidate_domains;
164 TP_printk("dev=%u, seqno=%u, flush=%04x, invalidate=%04x",
165 __entry->dev, __entry->seqno,
166 __entry->flush_domains, __entry->invalidate_domains)
169 DECLARE_EVENT_CLASS(i915_gem_request,
171 TP_PROTO(struct drm_device *dev, u32 seqno),
181 __entry->dev = dev->primary->index;
182 __entry->seqno = seqno;
185 TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
188 DEFINE_EVENT(i915_gem_request, i915_gem_request_complete,
190 TP_PROTO(struct drm_device *dev, u32 seqno),
195 DEFINE_EVENT(i915_gem_request, i915_gem_request_retire,
197 TP_PROTO(struct drm_device *dev, u32 seqno),
202 DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_begin,
204 TP_PROTO(struct drm_device *dev, u32 seqno),
209 DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end,
211 TP_PROTO(struct drm_device *dev, u32 seqno),
216 DECLARE_EVENT_CLASS(i915_ring,
218 TP_PROTO(struct drm_device *dev),
227 __entry->dev = dev->primary->index;
230 TP_printk("dev=%u", __entry->dev)
233 DEFINE_EVENT(i915_ring, i915_ring_wait_begin,
235 TP_PROTO(struct drm_device *dev),
240 DEFINE_EVENT(i915_ring, i915_ring_wait_end,
242 TP_PROTO(struct drm_device *dev),
247 TRACE_EVENT(i915_flip_request,
248 TP_PROTO(int plane, struct drm_i915_gem_object *obj),
254 __field(struct drm_i915_gem_object *, obj)
258 __entry->plane = plane;
262 TP_printk("plane=%d, obj=%p", __entry->plane, __entry->obj)
265 TRACE_EVENT(i915_flip_complete,
266 TP_PROTO(int plane, struct drm_i915_gem_object *obj),
272 __field(struct drm_i915_gem_object *, obj)
276 __entry->plane = plane;
280 TP_printk("plane=%d, obj=%p", __entry->plane, __entry->obj)
283 TRACE_EVENT(i915_reg_rw,
284 TP_PROTO(int cmd, uint32_t reg, uint64_t val, int len),
286 TP_ARGS(cmd, reg, val, len),
290 __field(uint32_t, reg)
291 __field(uint64_t, val)
298 __entry->val = (uint64_t)val;
302 TP_printk("cmd=%c, reg=0x%x, val=0x%llx, len=%d",
303 __entry->cmd, __entry->reg, __entry->val, __entry->len)
306 #endif /* _I915_TRACE_H_ */
308 /* This part must be outside protection */
309 #undef TRACE_INCLUDE_PATH
310 #define TRACE_INCLUDE_PATH .
311 #include <trace/define_trace.h>