52 lines
2.1 KiB
Diff
52 lines
2.1 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Wilson <chris.p.wilson@intel.com>
|
||
|
Date: Wed, 27 Jul 2022 14:29:54 +0200
|
||
|
Subject: [PATCH] drm/i915/gt: Skip TLB invalidations once wedged
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
[ Upstream commit e5a95c83ed1492c0f442b448b20c90c8faaf702b ]
|
||
|
|
||
|
Skip all further TLB invalidations once the device is wedged and
|
||
|
had been reset, as, on such cases, it can no longer process instructions
|
||
|
on the GPU and the user no longer has access to the TLB's in each engine.
|
||
|
|
||
|
So, an attempt to do a TLB cache invalidation will produce a timeout.
|
||
|
|
||
|
That helps to reduce the performance regression introduced by TLB
|
||
|
invalidate logic.
|
||
|
|
||
|
Cc: stable@vger.kernel.org
|
||
|
Fixes: 7938d61591d3 ("drm/i915: Flush TLBs before releasing backing store")
|
||
|
Signed-off-by: Chris Wilson <chris.p.wilson@intel.com>
|
||
|
Cc: Fei Yang <fei.yang@intel.com>
|
||
|
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
||
|
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
|
||
|
Acked-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
|
||
|
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
|
||
|
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
|
||
|
Link: https://patchwork.freedesktop.org/patch/msgid/5aa86564b9ec5fe7fe605c1dd7de76855401ed73.1658924372.git.mchehab@kernel.org
|
||
|
(cherry picked from commit be0366f168033374a93e4c43fdaa1a90ab905184)
|
||
|
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
||
|
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
||
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||
|
---
|
||
|
drivers/gpu/drm/i915/gt/intel_gt.c | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
|
||
|
index 3a76000d15bf..ed8ad3b26395 100644
|
||
|
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
|
||
|
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
|
||
|
@@ -949,6 +949,9 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
|
||
|
if (I915_SELFTEST_ONLY(gt->awake == -ENODEV))
|
||
|
return;
|
||
|
|
||
|
+ if (intel_gt_is_wedged(gt))
|
||
|
+ return;
|
||
|
+
|
||
|
if (GRAPHICS_VER(i915) == 12) {
|
||
|
regs = gen12_regs;
|
||
|
num = ARRAY_SIZE(gen12_regs);
|