]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/multi_queue: skip submit when primary queue is suspended
authorNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Wed, 3 Jun 2026 23:39:47 +0000 (16:39 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 4 Jun 2026 13:04:09 +0000 (09:04 -0400)
Return early in submit path when the multi-queue primary exec
queue is suspended to avoid submitting while suspended.

v2: Remove idle_skip_suspend fix as that feature is being
reverted here https://patchwork.freedesktop.org/series/167262/

Fixes: bc5775c59258 ("drm/xe/multi_queue: Add GuC interface for multi queue support")
Cc: stable@vger.kernel.org # v7.0+
Assisted-by: GitHub-Copilot:claude-sonnet-4.6
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Link: https://patch.msgid.link/20260603233946.863663-2-niranjana.vishwanathapura@intel.com
(cherry picked from commit b7fb55cc3364ca128cfff9d50649ffd4327cd01e)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_guc_submit.c

index 3493dd533d6c735a8286aa9887679b3413df69dd..a4a8f0d41fe822d54dabd7035d2a8c04b26793bf 100644 (file)
@@ -1147,9 +1147,12 @@ static void submit_exec_queue(struct xe_exec_queue *q, struct xe_sched_job *job)
 
        /*
         * All queues in a multi-queue group will use the primary queue
-        * of the group to interface with GuC.
+        * of the group to interface with GuC. If primay is suspended,
+        * just return. Jobs will get scheduled once primary is resumed.
         */
        q = xe_exec_queue_multi_queue_primary(q);
+       if (exec_queue_suspended(q))
+               return;
 
        if (!exec_queue_enabled(q) && !exec_queue_suspended(q)) {
                action[len++] = XE_GUC_ACTION_SCHED_CONTEXT_MODE_SET;