diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_trace.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_trace.h | 78 |
1 files changed, 57 insertions, 21 deletions
diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h index 2f34c47bd4bf..04fe8491c8b6 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h | |||
@@ -17,8 +17,8 @@ | |||
17 | /* pipe updates */ | 17 | /* pipe updates */ |
18 | 18 | ||
19 | TRACE_EVENT(i915_pipe_update_start, | 19 | TRACE_EVENT(i915_pipe_update_start, |
20 | TP_PROTO(struct intel_crtc *crtc, u32 min, u32 max), | 20 | TP_PROTO(struct intel_crtc *crtc), |
21 | TP_ARGS(crtc, min, max), | 21 | TP_ARGS(crtc), |
22 | 22 | ||
23 | TP_STRUCT__entry( | 23 | TP_STRUCT__entry( |
24 | __field(enum pipe, pipe) | 24 | __field(enum pipe, pipe) |
@@ -33,8 +33,8 @@ TRACE_EVENT(i915_pipe_update_start, | |||
33 | __entry->frame = crtc->base.dev->driver->get_vblank_counter(crtc->base.dev, | 33 | __entry->frame = crtc->base.dev->driver->get_vblank_counter(crtc->base.dev, |
34 | crtc->pipe); | 34 | crtc->pipe); |
35 | __entry->scanline = intel_get_crtc_scanline(crtc); | 35 | __entry->scanline = intel_get_crtc_scanline(crtc); |
36 | __entry->min = min; | 36 | __entry->min = crtc->debug.min_vbl; |
37 | __entry->max = max; | 37 | __entry->max = crtc->debug.max_vbl; |
38 | ), | 38 | ), |
39 | 39 | ||
40 | TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u", | 40 | TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u", |
@@ -43,8 +43,8 @@ TRACE_EVENT(i915_pipe_update_start, | |||
43 | ); | 43 | ); |
44 | 44 | ||
45 | TRACE_EVENT(i915_pipe_update_vblank_evaded, | 45 | TRACE_EVENT(i915_pipe_update_vblank_evaded, |
46 | TP_PROTO(struct intel_crtc *crtc, u32 min, u32 max, u32 frame), | 46 | TP_PROTO(struct intel_crtc *crtc), |
47 | TP_ARGS(crtc, min, max, frame), | 47 | TP_ARGS(crtc), |
48 | 48 | ||
49 | TP_STRUCT__entry( | 49 | TP_STRUCT__entry( |
50 | __field(enum pipe, pipe) | 50 | __field(enum pipe, pipe) |
@@ -56,10 +56,10 @@ TRACE_EVENT(i915_pipe_update_vblank_evaded, | |||
56 | 56 | ||
57 | TP_fast_assign( | 57 | TP_fast_assign( |
58 | __entry->pipe = crtc->pipe; | 58 | __entry->pipe = crtc->pipe; |
59 | __entry->frame = frame; | 59 | __entry->frame = crtc->debug.start_vbl_count; |
60 | __entry->scanline = intel_get_crtc_scanline(crtc); | 60 | __entry->scanline = crtc->debug.scanline_start; |
61 | __entry->min = min; | 61 | __entry->min = crtc->debug.min_vbl; |
62 | __entry->max = max; | 62 | __entry->max = crtc->debug.max_vbl; |
63 | ), | 63 | ), |
64 | 64 | ||
65 | TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u", | 65 | TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u", |
@@ -68,8 +68,8 @@ TRACE_EVENT(i915_pipe_update_vblank_evaded, | |||
68 | ); | 68 | ); |
69 | 69 | ||
70 | TRACE_EVENT(i915_pipe_update_end, | 70 | TRACE_EVENT(i915_pipe_update_end, |
71 | TP_PROTO(struct intel_crtc *crtc, u32 frame), | 71 | TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end), |
72 | TP_ARGS(crtc, frame), | 72 | TP_ARGS(crtc, frame, scanline_end), |
73 | 73 | ||
74 | TP_STRUCT__entry( | 74 | TP_STRUCT__entry( |
75 | __field(enum pipe, pipe) | 75 | __field(enum pipe, pipe) |
@@ -80,7 +80,7 @@ TRACE_EVENT(i915_pipe_update_end, | |||
80 | TP_fast_assign( | 80 | TP_fast_assign( |
81 | __entry->pipe = crtc->pipe; | 81 | __entry->pipe = crtc->pipe; |
82 | __entry->frame = frame; | 82 | __entry->frame = frame; |
83 | __entry->scanline = intel_get_crtc_scanline(crtc); | 83 | __entry->scanline = scanline_end; |
84 | ), | 84 | ), |
85 | 85 | ||
86 | TP_printk("pipe %c, frame=%u, scanline=%u", | 86 | TP_printk("pipe %c, frame=%u, scanline=%u", |
@@ -107,6 +107,26 @@ TRACE_EVENT(i915_gem_object_create, | |||
107 | TP_printk("obj=%p, size=%u", __entry->obj, __entry->size) | 107 | TP_printk("obj=%p, size=%u", __entry->obj, __entry->size) |
108 | ); | 108 | ); |
109 | 109 | ||
110 | TRACE_EVENT(i915_gem_shrink, | ||
111 | TP_PROTO(struct drm_i915_private *i915, unsigned long target, unsigned flags), | ||
112 | TP_ARGS(i915, target, flags), | ||
113 | |||
114 | TP_STRUCT__entry( | ||
115 | __field(int, dev) | ||
116 | __field(unsigned long, target) | ||
117 | __field(unsigned, flags) | ||
118 | ), | ||
119 | |||
120 | TP_fast_assign( | ||
121 | __entry->dev = i915->dev->primary->index; | ||
122 | __entry->target = target; | ||
123 | __entry->flags = flags; | ||
124 | ), | ||
125 | |||
126 | TP_printk("dev=%d, target=%lu, flags=%x", | ||
127 | __entry->dev, __entry->target, __entry->flags) | ||
128 | ); | ||
129 | |||
110 | TRACE_EVENT(i915_vma_bind, | 130 | TRACE_EVENT(i915_vma_bind, |
111 | TP_PROTO(struct i915_vma *vma, unsigned flags), | 131 | TP_PROTO(struct i915_vma *vma, unsigned flags), |
112 | TP_ARGS(vma, flags), | 132 | TP_ARGS(vma, flags), |
@@ -186,33 +206,49 @@ DEFINE_EVENT(i915_va, i915_va_alloc, | |||
186 | TP_ARGS(vm, start, length, name) | 206 | TP_ARGS(vm, start, length, name) |
187 | ); | 207 | ); |
188 | 208 | ||
189 | DECLARE_EVENT_CLASS(i915_page_table_entry, | 209 | DECLARE_EVENT_CLASS(i915_px_entry, |
190 | TP_PROTO(struct i915_address_space *vm, u32 pde, u64 start, u64 pde_shift), | 210 | TP_PROTO(struct i915_address_space *vm, u32 px, u64 start, u64 px_shift), |
191 | TP_ARGS(vm, pde, start, pde_shift), | 211 | TP_ARGS(vm, px, start, px_shift), |
192 | 212 | ||
193 | TP_STRUCT__entry( | 213 | TP_STRUCT__entry( |
194 | __field(struct i915_address_space *, vm) | 214 | __field(struct i915_address_space *, vm) |
195 | __field(u32, pde) | 215 | __field(u32, px) |
196 | __field(u64, start) | 216 | __field(u64, start) |
197 | __field(u64, end) | 217 | __field(u64, end) |
198 | ), | 218 | ), |
199 | 219 | ||
200 | TP_fast_assign( | 220 | TP_fast_assign( |
201 | __entry->vm = vm; | 221 | __entry->vm = vm; |
202 | __entry->pde = pde; | 222 | __entry->px = px; |
203 | __entry->start = start; | 223 | __entry->start = start; |
204 | __entry->end = ((start + (1ULL << pde_shift)) & ~((1ULL << pde_shift)-1)) - 1; | 224 | __entry->end = ((start + (1ULL << px_shift)) & ~((1ULL << px_shift)-1)) - 1; |
205 | ), | 225 | ), |
206 | 226 | ||
207 | TP_printk("vm=%p, pde=%d (0x%llx-0x%llx)", | 227 | TP_printk("vm=%p, pde=%d (0x%llx-0x%llx)", |
208 | __entry->vm, __entry->pde, __entry->start, __entry->end) | 228 | __entry->vm, __entry->px, __entry->start, __entry->end) |
209 | ); | 229 | ); |
210 | 230 | ||
211 | DEFINE_EVENT(i915_page_table_entry, i915_page_table_entry_alloc, | 231 | DEFINE_EVENT(i915_px_entry, i915_page_table_entry_alloc, |
212 | TP_PROTO(struct i915_address_space *vm, u32 pde, u64 start, u64 pde_shift), | 232 | TP_PROTO(struct i915_address_space *vm, u32 pde, u64 start, u64 pde_shift), |
213 | TP_ARGS(vm, pde, start, pde_shift) | 233 | TP_ARGS(vm, pde, start, pde_shift) |
214 | ); | 234 | ); |
215 | 235 | ||
236 | DEFINE_EVENT_PRINT(i915_px_entry, i915_page_directory_entry_alloc, | ||
237 | TP_PROTO(struct i915_address_space *vm, u32 pdpe, u64 start, u64 pdpe_shift), | ||
238 | TP_ARGS(vm, pdpe, start, pdpe_shift), | ||
239 | |||
240 | TP_printk("vm=%p, pdpe=%d (0x%llx-0x%llx)", | ||
241 | __entry->vm, __entry->px, __entry->start, __entry->end) | ||
242 | ); | ||
243 | |||
244 | DEFINE_EVENT_PRINT(i915_px_entry, i915_page_directory_pointer_entry_alloc, | ||
245 | TP_PROTO(struct i915_address_space *vm, u32 pml4e, u64 start, u64 pml4e_shift), | ||
246 | TP_ARGS(vm, pml4e, start, pml4e_shift), | ||
247 | |||
248 | TP_printk("vm=%p, pml4e=%d (0x%llx-0x%llx)", | ||
249 | __entry->vm, __entry->px, __entry->start, __entry->end) | ||
250 | ); | ||
251 | |||
216 | /* Avoid extra math because we only support two sizes. The format is defined by | 252 | /* Avoid extra math because we only support two sizes. The format is defined by |
217 | * bitmap_scnprintf. Each 32 bits is 8 HEX digits followed by comma */ | 253 | * bitmap_scnprintf. Each 32 bits is 8 HEX digits followed by comma */ |
218 | #define TRACE_PT_SIZE(bits) \ | 254 | #define TRACE_PT_SIZE(bits) \ |