diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0539-drm-amdgpu-add-tracepoint-for-scheduler-v2.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0539-drm-amdgpu-add-tracepoint-for-scheduler-v2.patch | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0539-drm-amdgpu-add-tracepoint-for-scheduler-v2.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0539-drm-amdgpu-add-tracepoint-for-scheduler-v2.patch new file mode 100644 index 00000000..abca3d23 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0539-drm-amdgpu-add-tracepoint-for-scheduler-v2.patch @@ -0,0 +1,94 @@ +From 353da3c520b47272b9e3ddbc70b81be285c0b933 Mon Sep 17 00:00:00 2001 +From: Chunming Zhou <david1.zhou@amd.com> +Date: Mon, 7 Sep 2015 16:06:53 +0800 +Subject: [PATCH 0539/1050] drm/amdgpu: add tracepoint for scheduler (v2) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +track sched job status like the length of job queue and hw job queue. + +v2: fix build after rebase + +Signed-off-by: Chunming Zhou <david1.zhou@amd.com> +Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h | 41 +++++++++++++++++++++++++ + drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 5 ++- + 2 files changed, 45 insertions(+), 1 deletion(-) + create mode 100644 drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h + +diff --git a/drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h b/drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h +new file mode 100644 +index 0000000..a1f4ece +--- /dev/null ++++ b/drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h +@@ -0,0 +1,41 @@ ++#if !defined(_GPU_SCHED_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) ++#define _GPU_SCHED_TRACE_H_ ++ ++#include <linux/stringify.h> ++#include <linux/types.h> ++#include <linux/tracepoint.h> ++ ++#include <drm/drmP.h> ++ ++#undef TRACE_SYSTEM ++#define TRACE_SYSTEM gpu_sched ++#define TRACE_INCLUDE_FILE gpu_sched_trace ++ ++TRACE_EVENT(amd_sched_job, ++ TP_PROTO(struct amd_sched_job *sched_job), ++ TP_ARGS(sched_job), ++ TP_STRUCT__entry( ++ __field(struct amd_sched_entity *, entity) ++ __field(u32, ring_id) ++ __field(u32, job_count) ++ __field(int, hw_job_count) ++ ), ++ ++ TP_fast_assign( ++ __entry->entity = sched_job->s_entity; ++ __entry->ring_id = sched_job->sched->ring_id; ++ __entry->job_count = kfifo_len( ++ &sched_job->s_entity->job_queue) / sizeof(sched_job); ++ __entry->hw_job_count = atomic_read( ++ &sched_job->sched->hw_rq_count); ++ ), ++ TP_printk("entity=%p, ring=%u, job count:%u, hw job count:%d", ++ __entry->entity, __entry->ring_id, __entry->job_count, ++ __entry->hw_job_count) ++); ++#endif ++ ++/* This part must be outside protection */ ++#undef TRACE_INCLUDE_PATH ++#define TRACE_INCLUDE_PATH . ++#include <trace/define_trace.h> +diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +index 9259f1b..5ad7fa8 100644 +--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c ++++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +@@ -27,6 +27,9 @@ + #include <drm/drmP.h> + #include "gpu_scheduler.h" + ++#define CREATE_TRACE_POINTS ++#include "gpu_sched_trace.h" ++ + static struct amd_sched_job * + amd_sched_entity_pop_job(struct amd_sched_entity *entity); + static void amd_sched_wakeup(struct amd_gpu_scheduler *sched); +@@ -273,7 +276,7 @@ int amd_sched_entity_push_job(struct amd_sched_job *sched_job) + + wait_event(entity->scheduler->job_scheduled, + amd_sched_entity_in(sched_job)); +- ++ trace_amd_sched_job(sched_job); + return 0; + } + +-- +1.9.1 + |