aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0236-drm-amdgpu-add-VM-pointer-to-id-trace.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0236-drm-amdgpu-add-VM-pointer-to-id-trace.patch')
-rw-r--r--common/recipes-kernel/linux/files/0236-drm-amdgpu-add-VM-pointer-to-id-trace.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0236-drm-amdgpu-add-VM-pointer-to-id-trace.patch b/common/recipes-kernel/linux/files/0236-drm-amdgpu-add-VM-pointer-to-id-trace.patch
new file mode 100644
index 00000000..034679de
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0236-drm-amdgpu-add-VM-pointer-to-id-trace.patch
@@ -0,0 +1,83 @@
+From a5520f1d3b2a965e6d1177b412598edc8aa24930 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Thu, 7 Jan 2016 18:15:22 +0100
+Subject: [PATCH 0236/1110] drm/amdgpu: add VM pointer to id trace
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Because of the scheduler all traces come from the same thread now and
+can't be distincted otherwise.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 9 ++++++---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++---
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+index 2b94c63..e7d2676 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+@@ -100,18 +100,21 @@ TRACE_EVENT(amdgpu_sched_run_job,
+
+
+ TRACE_EVENT(amdgpu_vm_grab_id,
+- TP_PROTO(unsigned vmid, int ring),
+- TP_ARGS(vmid, ring),
++ TP_PROTO(struct amdgpu_vm *vm, unsigned vmid, int ring),
++ TP_ARGS(vm, vmid, ring),
+ TP_STRUCT__entry(
++ __field(struct amdgpu_vm *, vm)
+ __field(u32, vmid)
+ __field(u32, ring)
+ ),
+
+ TP_fast_assign(
++ __entry->vm = vm;
+ __entry->vmid = vmid;
+ __entry->ring = ring;
+ ),
+- TP_printk("vmid=%u, ring=%u", __entry->vmid, __entry->ring)
++ TP_printk("vm=%p, id=%u, ring=%u", __entry->vm, __entry->vmid,
++ __entry->ring)
+ );
+
+ TRACE_EVENT(amdgpu_vm_bo_map,
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index 870379a..e688fcf 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -181,7 +181,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
+
+ owner = atomic_long_read(&adev->vm_manager.ids[id].owner);
+ if (owner == (long)vm) {
+- trace_amdgpu_vm_grab_id(vm_id->id, ring->idx);
++ trace_amdgpu_vm_grab_id(vm, vm_id->id, ring->idx);
+ return 0;
+ }
+ }
+@@ -197,7 +197,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
+ if (fence == NULL) {
+ /* found a free one */
+ vm_id->id = i;
+- trace_amdgpu_vm_grab_id(i, ring->idx);
++ trace_amdgpu_vm_grab_id(vm, i, ring->idx);
+ return 0;
+ }
+
+@@ -216,7 +216,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
+ fence = adev->vm_manager.ids[choices[i]].active;
+ vm_id->id = choices[i];
+
+- trace_amdgpu_vm_grab_id(choices[i], ring->idx);
++ trace_amdgpu_vm_grab_id(vm, choices[i], ring->idx);
+ return amdgpu_sync_fence(ring->adev, sync, fence);
+ }
+ }
+--
+2.7.4
+