~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/gpu/drm/i915/i915_trace.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
 
8
8
#include <drm/drmP.h>
9
9
#include "i915_drv.h"
 
10
#include "intel_ringbuffer.h"
10
11
 
11
12
#undef TRACE_SYSTEM
12
13
#define TRACE_SYSTEM i915
16
17
/* object tracking */
17
18
 
18
19
TRACE_EVENT(i915_gem_object_create,
19
 
 
20
20
            TP_PROTO(struct drm_i915_gem_object *obj),
21
 
 
22
21
            TP_ARGS(obj),
23
22
 
24
23
            TP_STRUCT__entry(
35
34
);
36
35
 
37
36
TRACE_EVENT(i915_gem_object_bind,
38
 
 
39
 
            TP_PROTO(struct drm_i915_gem_object *obj, u32 gtt_offset, bool mappable),
40
 
 
41
 
            TP_ARGS(obj, gtt_offset, mappable),
 
37
            TP_PROTO(struct drm_i915_gem_object *obj, bool mappable),
 
38
            TP_ARGS(obj, mappable),
42
39
 
43
40
            TP_STRUCT__entry(
44
41
                             __field(struct drm_i915_gem_object *, obj)
45
 
                             __field(u32, gtt_offset)
 
42
                             __field(u32, offset)
 
43
                             __field(u32, size)
46
44
                             __field(bool, mappable)
47
45
                             ),
48
46
 
49
47
            TP_fast_assign(
50
48
                           __entry->obj = obj;
51
 
                           __entry->gtt_offset = gtt_offset;
 
49
                           __entry->offset = obj->gtt_space->start;
 
50
                           __entry->size = obj->gtt_space->size;
52
51
                           __entry->mappable = mappable;
53
52
                           ),
54
53
 
55
 
            TP_printk("obj=%p, gtt_offset=%08x%s",
56
 
                      __entry->obj, __entry->gtt_offset,
 
54
            TP_printk("obj=%p, offset=%08x size=%x%s",
 
55
                      __entry->obj, __entry->offset, __entry->size,
57
56
                      __entry->mappable ? ", mappable" : "")
58
57
);
59
58
 
 
59
TRACE_EVENT(i915_gem_object_unbind,
 
60
            TP_PROTO(struct drm_i915_gem_object *obj),
 
61
            TP_ARGS(obj),
 
62
 
 
63
            TP_STRUCT__entry(
 
64
                             __field(struct drm_i915_gem_object *, obj)
 
65
                             __field(u32, offset)
 
66
                             __field(u32, size)
 
67
                             ),
 
68
 
 
69
            TP_fast_assign(
 
70
                           __entry->obj = obj;
 
71
                           __entry->offset = obj->gtt_space->start;
 
72
                           __entry->size = obj->gtt_space->size;
 
73
                           ),
 
74
 
 
75
            TP_printk("obj=%p, offset=%08x size=%x",
 
76
                      __entry->obj, __entry->offset, __entry->size)
 
77
);
 
78
 
60
79
TRACE_EVENT(i915_gem_object_change_domain,
61
 
 
62
 
            TP_PROTO(struct drm_i915_gem_object *obj, uint32_t old_read_domains, uint32_t old_write_domain),
63
 
 
64
 
            TP_ARGS(obj, old_read_domains, old_write_domain),
 
80
            TP_PROTO(struct drm_i915_gem_object *obj, u32 old_read, u32 old_write),
 
81
            TP_ARGS(obj, old_read, old_write),
65
82
 
66
83
            TP_STRUCT__entry(
67
84
                             __field(struct drm_i915_gem_object *, obj)
71
88
 
72
89
            TP_fast_assign(
73
90
                           __entry->obj = obj;
74
 
                           __entry->read_domains = obj->base.read_domains | (old_read_domains << 16);
75
 
                           __entry->write_domain = obj->base.write_domain | (old_write_domain << 16);
76
 
                           ),
77
 
 
78
 
            TP_printk("obj=%p, read=%04x, write=%04x",
79
 
                      __entry->obj,
80
 
                      __entry->read_domains, __entry->write_domain)
 
91
                           __entry->read_domains = obj->base.read_domains | (old_read << 16);
 
92
                           __entry->write_domain = obj->base.write_domain | (old_write << 16);
 
93
                           ),
 
94
 
 
95
            TP_printk("obj=%p, read=%02x=>%02x, write=%02x=>%02x",
 
96
                      __entry->obj,
 
97
                      __entry->read_domains >> 16,
 
98
                      __entry->read_domains & 0xffff,
 
99
                      __entry->write_domain >> 16,
 
100
                      __entry->write_domain & 0xffff)
 
101
);
 
102
 
 
103
TRACE_EVENT(i915_gem_object_pwrite,
 
104
            TP_PROTO(struct drm_i915_gem_object *obj, u32 offset, u32 len),
 
105
            TP_ARGS(obj, offset, len),
 
106
 
 
107
            TP_STRUCT__entry(
 
108
                             __field(struct drm_i915_gem_object *, obj)
 
109
                             __field(u32, offset)
 
110
                             __field(u32, len)
 
111
                             ),
 
112
 
 
113
            TP_fast_assign(
 
114
                           __entry->obj = obj;
 
115
                           __entry->offset = offset;
 
116
                           __entry->len = len;
 
117
                           ),
 
118
 
 
119
            TP_printk("obj=%p, offset=%u, len=%u",
 
120
                      __entry->obj, __entry->offset, __entry->len)
 
121
);
 
122
 
 
123
TRACE_EVENT(i915_gem_object_pread,
 
124
            TP_PROTO(struct drm_i915_gem_object *obj, u32 offset, u32 len),
 
125
            TP_ARGS(obj, offset, len),
 
126
 
 
127
            TP_STRUCT__entry(
 
128
                             __field(struct drm_i915_gem_object *, obj)
 
129
                             __field(u32, offset)
 
130
                             __field(u32, len)
 
131
                             ),
 
132
 
 
133
            TP_fast_assign(
 
134
                           __entry->obj = obj;
 
135
                           __entry->offset = offset;
 
136
                           __entry->len = len;
 
137
                           ),
 
138
 
 
139
            TP_printk("obj=%p, offset=%u, len=%u",
 
140
                      __entry->obj, __entry->offset, __entry->len)
 
141
);
 
142
 
 
143
TRACE_EVENT(i915_gem_object_fault,
 
144
            TP_PROTO(struct drm_i915_gem_object *obj, u32 index, bool gtt, bool write),
 
145
            TP_ARGS(obj, index, gtt, write),
 
146
 
 
147
            TP_STRUCT__entry(
 
148
                             __field(struct drm_i915_gem_object *, obj)
 
149
                             __field(u32, index)
 
150
                             __field(bool, gtt)
 
151
                             __field(bool, write)
 
152
                             ),
 
153
 
 
154
            TP_fast_assign(
 
155
                           __entry->obj = obj;
 
156
                           __entry->index = index;
 
157
                           __entry->gtt = gtt;
 
158
                           __entry->write = write;
 
159
                           ),
 
160
 
 
161
            TP_printk("obj=%p, %s index=%u %s",
 
162
                      __entry->obj,
 
163
                      __entry->gtt ? "GTT" : "CPU",
 
164
                      __entry->index,
 
165
                      __entry->write ? ", writable" : "")
81
166
);
82
167
 
83
168
DECLARE_EVENT_CLASS(i915_gem_object,
84
 
 
85
169
            TP_PROTO(struct drm_i915_gem_object *obj),
86
 
 
87
170
            TP_ARGS(obj),
88
171
 
89
172
            TP_STRUCT__entry(
98
181
);
99
182
 
100
183
DEFINE_EVENT(i915_gem_object, i915_gem_object_clflush,
101
 
 
102
 
            TP_PROTO(struct drm_i915_gem_object *obj),
103
 
 
104
 
            TP_ARGS(obj)
105
 
);
106
 
 
107
 
DEFINE_EVENT(i915_gem_object, i915_gem_object_unbind,
108
 
 
109
 
            TP_PROTO(struct drm_i915_gem_object *obj),
110
 
 
111
 
            TP_ARGS(obj)
 
184
             TP_PROTO(struct drm_i915_gem_object *obj),
 
185
             TP_ARGS(obj)
112
186
);
113
187
 
114
188
DEFINE_EVENT(i915_gem_object, i915_gem_object_destroy,
115
 
 
116
189
            TP_PROTO(struct drm_i915_gem_object *obj),
117
 
 
118
190
            TP_ARGS(obj)
119
191
);
120
192
 
121
 
/* batch tracing */
122
 
 
123
 
TRACE_EVENT(i915_gem_request_submit,
124
 
 
125
 
            TP_PROTO(struct drm_device *dev, u32 seqno),
126
 
 
127
 
            TP_ARGS(dev, seqno),
128
 
 
129
 
            TP_STRUCT__entry(
130
 
                             __field(u32, dev)
131
 
                             __field(u32, seqno)
132
 
                             ),
133
 
 
134
 
            TP_fast_assign(
135
 
                           __entry->dev = dev->primary->index;
136
 
                           __entry->seqno = seqno;
137
 
                           i915_trace_irq_get(dev, seqno);
138
 
                           ),
139
 
 
140
 
            TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
141
 
);
142
 
 
143
 
TRACE_EVENT(i915_gem_request_flush,
144
 
 
145
 
            TP_PROTO(struct drm_device *dev, u32 seqno,
146
 
                     u32 flush_domains, u32 invalidate_domains),
147
 
 
148
 
            TP_ARGS(dev, seqno, flush_domains, invalidate_domains),
149
 
 
150
 
            TP_STRUCT__entry(
151
 
                             __field(u32, dev)
152
 
                             __field(u32, seqno)
153
 
                             __field(u32, flush_domains)
154
 
                             __field(u32, invalidate_domains)
155
 
                             ),
156
 
 
157
 
            TP_fast_assign(
158
 
                           __entry->dev = dev->primary->index;
159
 
                           __entry->seqno = seqno;
160
 
                           __entry->flush_domains = flush_domains;
161
 
                           __entry->invalidate_domains = invalidate_domains;
162
 
                           ),
163
 
 
164
 
            TP_printk("dev=%u, seqno=%u, flush=%04x, invalidate=%04x",
165
 
                      __entry->dev, __entry->seqno,
166
 
                      __entry->flush_domains, __entry->invalidate_domains)
 
193
TRACE_EVENT(i915_gem_evict,
 
194
            TP_PROTO(struct drm_device *dev, u32 size, u32 align, bool mappable),
 
195
            TP_ARGS(dev, size, align, mappable),
 
196
 
 
197
            TP_STRUCT__entry(
 
198
                             __field(u32, dev)
 
199
                             __field(u32, size)
 
200
                             __field(u32, align)
 
201
                             __field(bool, mappable)
 
202
                            ),
 
203
 
 
204
            TP_fast_assign(
 
205
                           __entry->dev = dev->primary->index;
 
206
                           __entry->size = size;
 
207
                           __entry->align = align;
 
208
                           __entry->mappable = mappable;
 
209
                          ),
 
210
 
 
211
            TP_printk("dev=%d, size=%d, align=%d %s",
 
212
                      __entry->dev, __entry->size, __entry->align,
 
213
                      __entry->mappable ? ", mappable" : "")
 
214
);
 
215
 
 
216
TRACE_EVENT(i915_gem_evict_everything,
 
217
            TP_PROTO(struct drm_device *dev, bool purgeable),
 
218
            TP_ARGS(dev, purgeable),
 
219
 
 
220
            TP_STRUCT__entry(
 
221
                             __field(u32, dev)
 
222
                             __field(bool, purgeable)
 
223
                            ),
 
224
 
 
225
            TP_fast_assign(
 
226
                           __entry->dev = dev->primary->index;
 
227
                           __entry->purgeable = purgeable;
 
228
                          ),
 
229
 
 
230
            TP_printk("dev=%d%s",
 
231
                      __entry->dev,
 
232
                      __entry->purgeable ? ", purgeable only" : "")
 
233
);
 
234
 
 
235
TRACE_EVENT(i915_gem_ring_dispatch,
 
236
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
237
            TP_ARGS(ring, seqno),
 
238
 
 
239
            TP_STRUCT__entry(
 
240
                             __field(u32, dev)
 
241
                             __field(u32, ring)
 
242
                             __field(u32, seqno)
 
243
                             ),
 
244
 
 
245
            TP_fast_assign(
 
246
                           __entry->dev = ring->dev->primary->index;
 
247
                           __entry->ring = ring->id;
 
248
                           __entry->seqno = seqno;
 
249
                           i915_trace_irq_get(ring, seqno);
 
250
                           ),
 
251
 
 
252
            TP_printk("dev=%u, ring=%u, seqno=%u",
 
253
                      __entry->dev, __entry->ring, __entry->seqno)
 
254
);
 
255
 
 
256
TRACE_EVENT(i915_gem_ring_flush,
 
257
            TP_PROTO(struct intel_ring_buffer *ring, u32 invalidate, u32 flush),
 
258
            TP_ARGS(ring, invalidate, flush),
 
259
 
 
260
            TP_STRUCT__entry(
 
261
                             __field(u32, dev)
 
262
                             __field(u32, ring)
 
263
                             __field(u32, invalidate)
 
264
                             __field(u32, flush)
 
265
                             ),
 
266
 
 
267
            TP_fast_assign(
 
268
                           __entry->dev = ring->dev->primary->index;
 
269
                           __entry->ring = ring->id;
 
270
                           __entry->invalidate = invalidate;
 
271
                           __entry->flush = flush;
 
272
                           ),
 
273
 
 
274
            TP_printk("dev=%u, ring=%x, invalidate=%04x, flush=%04x",
 
275
                      __entry->dev, __entry->ring,
 
276
                      __entry->invalidate, __entry->flush)
167
277
);
168
278
 
169
279
DECLARE_EVENT_CLASS(i915_gem_request,
170
 
 
171
 
            TP_PROTO(struct drm_device *dev, u32 seqno),
172
 
 
173
 
            TP_ARGS(dev, seqno),
 
280
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
281
            TP_ARGS(ring, seqno),
174
282
 
175
283
            TP_STRUCT__entry(
176
284
                             __field(u32, dev)
 
285
                             __field(u32, ring)
177
286
                             __field(u32, seqno)
178
287
                             ),
179
288
 
180
289
            TP_fast_assign(
181
 
                           __entry->dev = dev->primary->index;
 
290
                           __entry->dev = ring->dev->primary->index;
 
291
                           __entry->ring = ring->id;
182
292
                           __entry->seqno = seqno;
183
293
                           ),
184
294
 
185
 
            TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
 
295
            TP_printk("dev=%u, ring=%u, seqno=%u",
 
296
                      __entry->dev, __entry->ring, __entry->seqno)
 
297
);
 
298
 
 
299
DEFINE_EVENT(i915_gem_request, i915_gem_request_add,
 
300
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
301
            TP_ARGS(ring, seqno)
186
302
);
187
303
 
188
304
DEFINE_EVENT(i915_gem_request, i915_gem_request_complete,
189
 
 
190
 
            TP_PROTO(struct drm_device *dev, u32 seqno),
191
 
 
192
 
            TP_ARGS(dev, seqno)
 
305
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
306
            TP_ARGS(ring, seqno)
193
307
);
194
308
 
195
309
DEFINE_EVENT(i915_gem_request, i915_gem_request_retire,
196
 
 
197
 
            TP_PROTO(struct drm_device *dev, u32 seqno),
198
 
 
199
 
            TP_ARGS(dev, seqno)
 
310
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
311
            TP_ARGS(ring, seqno)
200
312
);
201
313
 
202
314
DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_begin,
203
 
 
204
 
            TP_PROTO(struct drm_device *dev, u32 seqno),
205
 
 
206
 
            TP_ARGS(dev, seqno)
 
315
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
316
            TP_ARGS(ring, seqno)
207
317
);
208
318
 
209
319
DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end,
210
 
 
211
 
            TP_PROTO(struct drm_device *dev, u32 seqno),
212
 
 
213
 
            TP_ARGS(dev, seqno)
 
320
            TP_PROTO(struct intel_ring_buffer *ring, u32 seqno),
 
321
            TP_ARGS(ring, seqno)
214
322
);
215
323
 
216
324
DECLARE_EVENT_CLASS(i915_ring,
217
 
 
218
 
            TP_PROTO(struct drm_device *dev),
219
 
 
220
 
            TP_ARGS(dev),
 
325
            TP_PROTO(struct intel_ring_buffer *ring),
 
326
            TP_ARGS(ring),
221
327
 
222
328
            TP_STRUCT__entry(
223
329
                             __field(u32, dev)
 
330
                             __field(u32, ring)
224
331
                             ),
225
332
 
226
333
            TP_fast_assign(
227
 
                           __entry->dev = dev->primary->index;
 
334
                           __entry->dev = ring->dev->primary->index;
 
335
                           __entry->ring = ring->id;
228
336
                           ),
229
337
 
230
 
            TP_printk("dev=%u", __entry->dev)
 
338
            TP_printk("dev=%u, ring=%u", __entry->dev, __entry->ring)
231
339
);
232
340
 
233
341
DEFINE_EVENT(i915_ring, i915_ring_wait_begin,
234
 
 
235
 
            TP_PROTO(struct drm_device *dev),
236
 
 
237
 
            TP_ARGS(dev)
 
342
            TP_PROTO(struct intel_ring_buffer *ring),
 
343
            TP_ARGS(ring)
238
344
);
239
345
 
240
346
DEFINE_EVENT(i915_ring, i915_ring_wait_end,
241
 
 
242
 
            TP_PROTO(struct drm_device *dev),
243
 
 
244
 
            TP_ARGS(dev)
 
347
            TP_PROTO(struct intel_ring_buffer *ring),
 
348
            TP_ARGS(ring)
245
349
);
246
350
 
247
351
TRACE_EVENT(i915_flip_request,
281
385
);
282
386
 
283
387
TRACE_EVENT(i915_reg_rw,
284
 
           TP_PROTO(int cmd, uint32_t reg, uint64_t val, int len),
 
388
           TP_PROTO(bool write, u32 reg, u64 val, int len),
285
389
 
286
 
           TP_ARGS(cmd, reg, val, len),
 
390
           TP_ARGS(write, reg, val, len),
287
391
 
288
392
           TP_STRUCT__entry(
289
 
                   __field(int, cmd)
290
 
                   __field(uint32_t, reg)
291
 
                   __field(uint64_t, val)
292
 
                   __field(int, len)
 
393
                   __field(u64, val)
 
394
                   __field(u32, reg)
 
395
                   __field(u16, write)
 
396
                   __field(u16, len)
293
397
                   ),
294
398
 
295
399
           TP_fast_assign(
296
 
                   __entry->cmd = cmd;
 
400
                   __entry->val = (u64)val;
297
401
                   __entry->reg = reg;
298
 
                   __entry->val = (uint64_t)val;
 
402
                   __entry->write = write;
299
403
                   __entry->len = len;
300
404
                   ),
301
405
 
302
 
           TP_printk("cmd=%c, reg=0x%x, val=0x%llx, len=%d",
303
 
                     __entry->cmd, __entry->reg, __entry->val, __entry->len)
 
406
           TP_printk("%s reg=0x%x, len=%d, val=(0x%x, 0x%x)",
 
407
                     __entry->write ? "write" : "read",
 
408
                     __entry->reg, __entry->len,
 
409
                     (u32)(__entry->val & 0xffffffff),
 
410
                     (u32)(__entry->val >> 32))
304
411
);
305
412
 
306
413
#endif /* _I915_TRACE_H_ */