diff options
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.patch | 81 |
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 + |