drm/xe: Invert runnable_state / pending enable check and assert
authorMatthew Brost <matthew.brost@intel.com>
Fri, 14 Jun 2024 06:13:43 +0000 (23:13 -0700)
committerMatthew Brost <matthew.brost@intel.com>
Thu, 20 Jun 2024 22:33:14 +0000 (15:33 -0700)
Rather than checking for pending enable and asserting runnable_state ==
1 in sched done handler, invert these. This is more robust code taking
action based on the G2H message and asserting KMD tracking state is
correct.

Suggested-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240614061343.2931649-1-matthew.brost@intel.com
drivers/gpu/drm/xe/xe_guc_submit.c

index 7455239..3734477 100644 (file)
@@ -1782,8 +1782,8 @@ static void handle_sched_done(struct xe_guc *guc, struct xe_exec_queue *q,
 {
        trace_xe_exec_queue_scheduling_done(q);
 
-       if (exec_queue_pending_enable(q)) {
-               xe_gt_assert(guc_to_gt(guc), runnable_state == 1);
+       if (runnable_state == 1) {
+               xe_gt_assert(guc_to_gt(guc), exec_queue_pending_enable(q));
 
                q->guc->resume_time = ktime_get();
                clear_exec_queue_pending_enable(q);