aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2014-07-22 11:42:34 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-08-05 08:53:38 -0400
commita3a9226d29bcfdcbe8f8608c9f739f266de6106c (patch)
tree9155d03bb341f06cd88153f2cf17638325ead361
parent33fa9fe3ddae48c552bce1ab33db0f2f49eb81ea (diff)
drm/radeon: add trace_radeon_vm_flush
Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/radeon_trace.h18
-rw-r--r--drivers/gpu/drm/radeon/radeon_vm.c1
2 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_trace.h b/drivers/gpu/drm/radeon/radeon_trace.h
index f749f2c3bbdb..cd781f34bd8d 100644
--- a/drivers/gpu/drm/radeon/radeon_trace.h
+++ b/drivers/gpu/drm/radeon/radeon_trace.h
@@ -104,6 +104,24 @@ TRACE_EVENT(radeon_vm_set_page,
104 __entry->flags, __entry->count) 104 __entry->flags, __entry->count)
105); 105);
106 106
107TRACE_EVENT(radeon_vm_flush,
108 TP_PROTO(uint64_t pd_addr, unsigned ring, unsigned id),
109 TP_ARGS(pd_addr, ring, id),
110 TP_STRUCT__entry(
111 __field(u64, pd_addr)
112 __field(u32, ring)
113 __field(u32, id)
114 ),
115
116 TP_fast_assign(
117 __entry->pd_addr = pd_addr;
118 __entry->ring = ring;
119 __entry->id = id;
120 ),
121 TP_printk("pd_addr=%010Lx, ring=%u, id=%u",
122 __entry->pd_addr, __entry->ring, __entry->id)
123);
124
107DECLARE_EVENT_CLASS(radeon_fence_request, 125DECLARE_EVENT_CLASS(radeon_fence_request,
108 126
109 TP_PROTO(struct drm_device *dev, int ring, u32 seqno), 127 TP_PROTO(struct drm_device *dev, int ring, u32 seqno),
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
index f0a8cd7a83a6..2a2509e7ba87 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -240,6 +240,7 @@ void radeon_vm_flush(struct radeon_device *rdev,
240 /* if we can't remember our last VM flush then flush now! */ 240 /* if we can't remember our last VM flush then flush now! */
241 /* XXX figure out why we have to flush all the time */ 241 /* XXX figure out why we have to flush all the time */
242 if (!vm->last_flush || true || pd_addr != vm->pd_gpu_addr) { 242 if (!vm->last_flush || true || pd_addr != vm->pd_gpu_addr) {
243 trace_radeon_vm_flush(pd_addr, ring, vm->id);
243 vm->pd_gpu_addr = pd_addr; 244 vm->pd_gpu_addr = pd_addr;
244 radeon_ring_vm_flush(rdev, ring, vm); 245 radeon_ring_vm_flush(rdev, ring, vm);
245 } 246 }