Patch "drm/i915/reset: Handle reset timeouts under unrelated kernel hangs" has been added to the 6.0-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/i915/reset: Handle reset timeouts under unrelated kernel hangs

to the 6.0-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-i915-reset-handle-reset-timeouts-under-unrelated.patch
and it can be found in the queue-6.0 subdirectory.

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



commit 299c5a8bbfa2562ba358249b922baa2bcb0e96f4
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date:   Wed Jun 29 21:39:59 2022 -0700

    drm/i915/reset: Handle reset timeouts under unrelated kernel hangs
    
    [ Upstream commit 1dab4561a341afdbaafe0ce6091106d0c63c79e0 ]
    
    When resuming after hibernate sometimes we see hangs in unrelated kernel
    subsystems. These hangs often result in the following i915 trace:
    
    i915 0000:00:02.0: [drm] *ERROR* \
            intel_gt_reset_global timed out, cancelling all in-flight rendering
    
    implying our reset task has been starved by the hanging kernel subsystem,
    causing us to inappropiately declare the system as wedged beyond recovery.
    
    The trace would be caused by our synchronize_srcu_expedited() taking more
    than the allowed 5s due to the unrelated kernel hang. But we neither need
    to perform that synchronisation inside the reset watchdog, nor do we need
    such a short timeout before declaring the device as unrecoverable.
    
    v2: Restore watchdog timeout to the previous 5 seconds (Ashutosh)
    
    Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/3575
    Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
    Signed-off-by: Ashutosh Dixit <ashutosh.dixit@xxxxxxxxx>
    Reviewed-by: Ashutosh Dixit <ashutosh.dixit@xxxxxxxxx>
    Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220630043959.5708-1-ashutosh.dixit@xxxxxxxxx
    Stable-dep-of: 774ce1510e6c ("drm/i915/guc: support v69 in parallel to v70")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c
index c68d36fb5bbd..1211774e1d91 100644
--- a/drivers/gpu/drm/i915/gt/intel_reset.c
+++ b/drivers/gpu/drm/i915/gt/intel_reset.c
@@ -1281,9 +1281,6 @@ static void intel_gt_reset_global(struct intel_gt *gt,
 	intel_wedge_on_timeout(&w, gt, 5 * HZ) {
 		intel_display_prepare_reset(gt->i915);
 
-		/* Flush everyone using a resource about to be clobbered */
-		synchronize_srcu_expedited(&gt->reset.backoff_srcu);
-
 		intel_gt_reset(gt, engine_mask, reason);
 
 		intel_display_finish_reset(gt->i915);
@@ -1392,6 +1389,9 @@ void intel_gt_handle_error(struct intel_gt *gt,
 		}
 	}
 
+	/* Flush everyone using a resource about to be clobbered */
+	synchronize_srcu_expedited(&gt->reset.backoff_srcu);
+
 	intel_gt_reset_global(gt, engine_mask, msg);
 
 	if (!intel_uc_uses_guc_submission(&gt->uc)) {



[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