aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0007-drm-amdgpu-Add-job-pipe-sync-dependecy-trace.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0007-drm-amdgpu-Add-job-pipe-sync-dependecy-trace.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0007-drm-amdgpu-Add-job-pipe-sync-dependecy-trace.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0007-drm-amdgpu-Add-job-pipe-sync-dependecy-trace.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0007-drm-amdgpu-Add-job-pipe-sync-dependecy-trace.patch
new file mode 100644
index 00000000..2ce85edc
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0007-drm-amdgpu-Add-job-pipe-sync-dependecy-trace.patch
@@ -0,0 +1,81 @@
+From 4eb4a96395f9c0e1acf6fdfff61aff91e4518f47 Mon Sep 17 00:00:00 2001
+From: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Date: Tue, 31 Jul 2018 10:52:25 -0400
+Subject: [PATCH 0007/2940] drm/amdgpu: Add job pipe sync dependecy trace
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It's useful to trace any dependency a job has on prevoius
+jobs.
+
+Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 5 +++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 24 +++++++++++++++++++++++
+ 2 files changed, 29 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+index 51b5e977ca88..47817e00f54f 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+@@ -32,6 +32,7 @@
+ #include <drm/amdgpu_drm.h>
+ #include "amdgpu.h"
+ #include "atom.h"
++#include "amdgpu_trace.h"
+
+ #define AMDGPU_IB_TEST_TIMEOUT msecs_to_jiffies(1000)
+
+@@ -170,6 +171,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
+ (amdgpu_sriov_vf(adev) && need_ctx_switch) ||
+ amdgpu_vm_need_pipeline_sync(ring, job))) {
+ need_pipe_sync = true;
++
++ if (tmp)
++ trace_amdgpu_ib_pipe_sync(job, tmp);
++
+ dma_fence_put(tmp);
+ }
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+index 7206a0025b17..8c2dab20eb36 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+@@ -462,6 +462,30 @@ TRACE_EVENT(amdgpu_bo_move,
+ __entry->new_placement, __entry->bo_size)
+ );
+
++TRACE_EVENT(amdgpu_ib_pipe_sync,
++ TP_PROTO(struct amdgpu_job *sched_job, struct dma_fence *fence),
++ TP_ARGS(sched_job, fence),
++ TP_STRUCT__entry(
++ __field(const char *,name)
++ __field(uint64_t, id)
++ __field(struct dma_fence *, fence)
++ __field(uint64_t, ctx)
++ __field(unsigned, seqno)
++ ),
++
++ TP_fast_assign(
++ __entry->name = sched_job->base.sched->name;
++ __entry->id = sched_job->base.id;
++ __entry->fence = fence;
++ __entry->ctx = fence->context;
++ __entry->seqno = fence->seqno;
++ ),
++ TP_printk("job ring=%s, id=%llu, need pipe sync to fence=%p, context=%llu, seq=%u",
++ __entry->name, __entry->id,
++ __entry->fence, __entry->ctx,
++ __entry->seqno)
++);
++
+ #undef AMDGPU_JOB_GET_TIMELINE_NAME
+ #endif
+
+--
+2.17.1
+