aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_trace.h')
-rw-r--r--drivers/gpu/drm/i915/i915_trace.h78
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
19TRACE_EVENT(i915_pipe_update_start, 19TRACE_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
45TRACE_EVENT(i915_pipe_update_vblank_evaded, 45TRACE_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
70TRACE_EVENT(i915_pipe_update_end, 70TRACE_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
110TRACE_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
110TRACE_EVENT(i915_vma_bind, 130TRACE_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
189DECLARE_EVENT_CLASS(i915_page_table_entry, 209DECLARE_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
211DEFINE_EVENT(i915_page_table_entry, i915_page_table_entry_alloc, 231DEFINE_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
236DEFINE_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
244DEFINE_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) \