Patch "drm/xe: Don't restart parallel queues multiple times on GT reset" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/xe: Don't restart parallel queues multiple times on GT reset

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-xe-don-t-restart-parallel-queues-multiple-times-.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0713714fadc370b52210d1a06bc24ade218edefb
Author: Nirmoy Das <nirmoy.das@xxxxxxxxx>
Date:   Tue Oct 22 12:35:55 2024 +0200

    drm/xe: Don't restart parallel queues multiple times on GT reset
    
    [ Upstream commit cdc21021f0351226a4845715564afd5dc50ed44b ]
    
    In case of parallel submissions multiple GuC id will point to the
    same exec queue and on GT reset such exec queues will get restarted
    multiple times which is not desirable.
    
    v2: don't use exec_queue_enabled() which could race,
        do the same for xe_guc_submit_stop (Matt B)
    
    Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2295
    Cc: Jonathan Cavitt <jonathan.cavitt@xxxxxxxxx>
    Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@xxxxxxxxx>
    Cc: Matthew Auld <matthew.auld@xxxxxxxxx>
    Cc: Matthew Brost <matthew.brost@xxxxxxxxx>
    Cc: Tejas Upadhyay <tejas.upadhyay@xxxxxxxxx>
    Reviewed-by: Matthew Brost <matthew.brost@xxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241022103555.731557-1-nirmoy.das@xxxxxxxxx
    Signed-off-by: Nirmoy Das <nirmoy.das@xxxxxxxxx>
    (cherry picked from commit c8b0acd6d8745fd7e6450f5acc38f0227bd253b3)
    Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index cbdd44567d107..792024c28da86 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -1771,8 +1771,13 @@ void xe_guc_submit_stop(struct xe_guc *guc)
 
 	mutex_lock(&guc->submission_state.lock);
 
-	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q)
+	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q) {
+		/* Prevent redundant attempts to stop parallel queues */
+		if (q->guc->id != index)
+			continue;
+
 		guc_exec_queue_stop(guc, q);
+	}
 
 	mutex_unlock(&guc->submission_state.lock);
 
@@ -1810,8 +1815,13 @@ int xe_guc_submit_start(struct xe_guc *guc)
 
 	mutex_lock(&guc->submission_state.lock);
 	atomic_dec(&guc->submission_state.stopped);
-	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q)
+	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q) {
+		/* Prevent redundant attempts to start parallel queues */
+		if (q->guc->id != index)
+			continue;
+
 		guc_exec_queue_start(q);
+	}
 	mutex_unlock(&guc->submission_state.lock);
 
 	wake_up_all(&guc->ct.wq);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux