diff options
author | Nirmoy Das <nirmoy.das@intel.com> | 2024-04-22 22:19:51 +0200 |
---|---|---|
committer | Andi Shyti <andi.shyti@linux.intel.com> | 2024-04-24 18:48:32 +0200 |
commit | 4d3421e04c5dc38baf15224c051256204f223c15 (patch) | |
tree | 55e9cca99f1d7a86e9dba479d47f74059761bf9b /drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | |
parent | 31c3c53ee3a3e39aac690dffab75765d25e318dd (diff) | |
download | linux-4d3421e04c5dc38baf15224c051256204f223c15.tar.gz linux-4d3421e04c5dc38baf15224c051256204f223c15.tar.bz2 linux-4d3421e04c5dc38baf15224c051256204f223c15.zip |
drm/i915: Fix gt reset with GuC submission is disabled
Currently intel_gt_reset() kills the GuC and then resets requested
engines. This is problematic because there is a dedicated CSB FIFO
which only GuC can access and if that FIFO fills up, the hardware
will block on the next context switch until there is space that means
the system is effectively hung. If an engine is reset whilst actively
executing a context, a CSB entry will be sent to say that the context
has gone idle. Thus if reset happens on a very busy system then
killing GuC before killing the engines will lead to deadlock because
of filled up CSB FIFO.
To address this issue, the GuC should be killed only after resetting
the requested engines and before calling intel_gt_init_hw().
v2: Improve commit message(John)
Cc: John Harrison <john.c.harrison@intel.com>
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240422201951.633-2-nirmoy.das@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c')
0 files changed, 0 insertions, 0 deletions