summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/xe_trace.h
diff options
context:
space:
mode:
authorMatthew Brost <matthew.brost@intel.com>2023-05-22 04:24:20 +0300
committerRodrigo Vivi <rodrigo.vivi@intel.com>2023-12-21 19:34:44 +0300
commit8ae8a2e8dd21bd8bc94c9817874a97239aa867a2 (patch)
tree4287e92b7ad80bc9edb45d014b5e4bf432c08da6 /drivers/gpu/drm/xe/xe_trace.h
parent37430402618db90b53aa782a6c49f66ab0efced0 (diff)
downloadlinux-8ae8a2e8dd21bd8bc94c9817874a97239aa867a2.tar.xz
drm/xe: Long running job update
For long running (LR) jobs with the DRM scheduler we must return NULL in run_job which results in signaling the job's finished fence immediately. This prevents LR jobs from creating infinite dma-fences. Signaling job's finished fence immediately breaks flow controlling ring with the DRM scheduler. To work around this, the ring is flow controlled and written in the exec IOCTL. Signaling job's finished fence immediately also breaks the TDR which is used in reset / cleanup entity paths so write a new path for LR entities. v2: Better commit, white space, remove rmb(), better comment next to emit_job() v3 (Thomas): Change LR reference counting, fix working in commit Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Signed-off-by: Matthew Brost <matthew.brost@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/xe_trace.h')
-rw-r--r--drivers/gpu/drm/xe/xe_trace.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/xe_trace.h b/drivers/gpu/drm/xe/xe_trace.h
index 878ab4115d91..8a5d35f15791 100644
--- a/drivers/gpu/drm/xe/xe_trace.h
+++ b/drivers/gpu/drm/xe/xe_trace.h
@@ -220,6 +220,11 @@ DEFINE_EVENT(xe_engine, xe_engine_resubmit,
TP_ARGS(e)
);
+DEFINE_EVENT(xe_engine, xe_engine_lr_cleanup,
+ TP_PROTO(struct xe_engine *e),
+ TP_ARGS(e)
+);
+
DECLARE_EVENT_CLASS(xe_sched_job,
TP_PROTO(struct xe_sched_job *job),
TP_ARGS(job),