This is a note to let you know that I've just added the patch titled drm/i915/gt: Cancel the preemption timeout on responding to it to the 5.9-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-gt-cancel-the-preemption-timeout-on-responding-to-it.patch and it can be found in the queue-5.9 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 0fe8bf4d3edce7aad6c14b9d5d92ff54dc19f0ba Mon Sep 17 00:00:00 2001 From: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Date: Fri, 4 Dec 2020 15:12:32 +0000 Subject: drm/i915/gt: Cancel the preemption timeout on responding to it From: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> commit 0fe8bf4d3edce7aad6c14b9d5d92ff54dc19f0ba upstream. We currently presume that the engine reset is successful, cancelling the expired preemption timer in the process. However, engine resets can fail, leaving the timeout still pending and we will then respond to the timeout again next time the tasklet fires. What we want is for the failed engine reset to be promoted to a full device reset, which is kicked by the heartbeat once the engine stops processing events. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1168 Fixes: 3a7a92aba8fb ("drm/i915/execlists: Force preemption") Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: <stable@xxxxxxxxxxxxxxx> # v5.5+ Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> Link: https://patchwork.freedesktop.org/patch/msgid/20201204151234.19729-2-chris@xxxxxxxxxxxxxxxxxx (cherry picked from commit d997e240ceecb4f732611985d3a939ad1bfc1893) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -3172,8 +3172,10 @@ static void execlists_submission_tasklet spin_unlock_irqrestore(&engine->active.lock, flags); /* Recheck after serialising with direct-submission */ - if (unlikely(timeout && preempt_timeout(engine))) + if (unlikely(timeout && preempt_timeout(engine))) { + cancel_timer(&engine->execlists.preempt); execlists_reset(engine, "preemption time out"); + } } } Patches currently in stable-queue which might be from chris@xxxxxxxxxxxxxxxxxx are queue-5.9/drm-i915-gt-declare-gen9-has-64-mocs-entries.patch queue-5.9/drm-i915-gt-cancel-the-preemption-timeout-on-responding-to-it.patch queue-5.9/drm-i915-gem-propagate-error-from-cancelled-submit-due-to-context-closure.patch queue-5.9/drm-i915-gt-ignore-repeated-attempts-to-suspend-request-flow-across-reset.patch