OpenCloudOS-Kernel/drivers/gpu/drm/i915/gt
Daniele Ceraolo Spurio de2228c041 drm/i915/guc: clear stalled request after a reset
If the GuC CTs are full and we need to stall the request submission
while waiting for space, we save the stalled request and where the stall
occurred; when the CTs have space again we pick up the request submission
from where we left off.

If a full GT reset occurs, the state of all contexts is cleared and all
non-guilty requests are unsubmitted, therefore we need to restart the
stalled request submission from scratch. To make sure that we do so,
clear the saved request after a reset.

Fixes note: the patch that introduced the bug is in 5.15, but no
officially supported platform had GuC submission enabled by default
in that kernel, so the backport to that particular version (and only
that one) can potentially be skipped.

Fixes: 925dc1cf58 ("drm/i915/guc: Implement GuC submission tasklet")
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: John Harrison <john.c.harrison@intel.com>
Cc: <stable@vger.kernel.org> # v5.15+
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220811210812.3239621-1-daniele.ceraolospurio@intel.com
(cherry picked from commit f922fbb0f2)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2022-08-23 21:27:09 -04:00
..
selftests
shaders
uc drm/i915/guc: clear stalled request after a reset 2022-08-23 21:27:09 -04:00
gen2_engine_cs.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
gen2_engine_cs.h
gen6_engine_cs.c drm/i915/gt: Move engine registers to their own header 2022-01-11 14:03:25 -08:00
gen6_engine_cs.h
gen6_ppgtt.c drm/i915: Remove the vm open count 2022-03-07 08:50:03 +01:00
gen6_ppgtt.h drm/i915: Create a dummy object for gen6 ppgtt 2021-11-19 17:38:03 +00:00
gen6_renderstate.c drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
gen7_renderclear.c drm/i915: Move GT registers to their own header file 2022-02-02 07:59:14 -08:00
gen7_renderclear.h
gen7_renderstate.c drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
gen8_engine_cs.c drm/i915/pvc: Remove additional 3D flags from PIPE_CONTROL 2022-05-24 12:26:25 -07:00
gen8_engine_cs.h drm/i915/gt: Clear SET_PREDICATE_RESULT prior to executing the ring 2022-05-02 15:18:09 +05:30
gen8_ppgtt.c drm/i915/gt: replace cache_clflush_range 2022-03-22 10:10:53 -07:00
gen8_ppgtt.h drm/i915: Reduce the number of objects subject to memcpy recover 2021-09-24 08:19:16 +02:00
gen8_renderstate.c drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
gen9_renderstate.c drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
hsw_clear_kernel.c
intel_breadcrumbs.c drm/i915/gt: Only kick the signal worker if there's been an update 2022-07-12 17:44:43 -04:00
intel_breadcrumbs.h drm/i915/guc: Direct all breadcrumbs for a class to single breadcrumbs 2021-07-27 17:31:35 -07:00
intel_breadcrumbs_types.h drm/i915/guc: Direct all breadcrumbs for a class to single breadcrumbs 2021-07-27 17:31:35 -07:00
intel_context.c drm/i915: Improve user experience and driver robustness under SIGINT or similar 2022-06-17 09:03:11 +01:00
intel_context.h drm/i915: Improve user experience and driver robustness under SIGINT or similar 2022-06-17 09:03:11 +01:00
intel_context_param.h drm/i915/gem: Set the watchdog timeout directly in intel_context_set_gem (v2) 2021-07-08 19:43:49 +02:00
intel_context_sseu.c drm/i915/lrc: move lrc_get_runtime() to intel_lrc.c 2022-02-17 15:42:09 +02:00
intel_context_types.h drm for 5.20/6.0 2022-08-03 19:52:08 -07:00
intel_engine.h drm/i915/reset: Add additional steps for Wa_22011802037 for execlist backend 2022-07-25 15:57:54 +01:00
intel_engine_cs.c drm/i915/reset: Add additional steps for Wa_22011802037 for execlist backend 2022-07-25 15:57:54 +01:00
intel_engine_heartbeat.c drm/i915: remove IS_ACTIVE 2021-10-07 11:04:05 -07:00
intel_engine_heartbeat.h drm/i915: Reset GPU immediately if submission is disabled 2021-07-27 17:31:45 -07:00
intel_engine_pm.c drm/i915: Add ww ctx to i915_gem_object_trylock 2021-12-21 13:27:29 +01:00
intel_engine_pm.h drm/i915/guc: Take engine PM when a context is pinned with GuC submission 2021-10-15 10:37:26 -07:00
intel_engine_regs.h drm/i915: Add extra registers to GPU error dump 2022-06-02 09:14:36 -07:00
intel_engine_stats.h drm/i915/pmu: Add a name to the execlists stats 2021-10-28 11:02:18 -07:00
intel_engine_types.h drm/i915/gt: Add general DSS steering iterator to intel_gt_mcr 2022-07-08 09:32:57 -07:00
intel_engine_user.c drm/i915/xehp: Add compute engine ABI 2022-04-29 14:30:27 -07:00
intel_engine_user.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_execlists_submission.c drm/i915/reset: Add additional steps for Wa_22011802037 for execlist backend 2022-07-25 15:57:54 +01:00
intel_execlists_submission.h drm/i915/guc: GuC virtual engines 2021-07-27 17:31:28 -07:00
intel_ggtt.c drm/i915: Fix a lockdep warning at error capture 2022-06-29 14:52:50 +05:30
intel_ggtt_fencing.c drm/i915: include linux/highmem.h and linux/swap.h where needed 2022-03-04 11:15:25 +02:00
intel_ggtt_fencing.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_ggtt_gmch.c drm/i915/gt: Re-do the intel-gtt split 2022-06-22 15:52:56 -07:00
intel_ggtt_gmch.h drm/i915/gt: Re-do the intel-gtt split 2022-06-22 15:52:56 -07:00
intel_gpu_commands.h drm/i915/pvc: Remove additional 3D flags from PIPE_CONTROL 2022-05-24 12:26:25 -07:00
intel_gsc.c drm/i915/dg2: add gsc with special gsc bar offsets 2022-04-21 11:34:39 -07:00
intel_gsc.h drm/i915/gsc: add gsc as a mei auxiliary device 2022-04-21 11:33:56 -07:00
intel_gt.c drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
intel_gt.h drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
intel_gt_buffer_pool.c drm/i915: split out i915_gem_internal.h from i915_drv.h 2022-02-11 12:52:50 +02:00
intel_gt_buffer_pool.h drm/i915: Defer pin calls in buffer pool until first use by caller. 2021-03-24 17:27:20 +01:00
intel_gt_buffer_pool_types.h Merge tag 'drm-intel-gt-next-2021-04-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 12:46:12 +10:00
intel_gt_clock_utils.c drm/i915: Track context current active time 2022-04-05 08:39:10 +01:00
intel_gt_clock_utils.h drm/i915/gt: Consolidate the CS timestamp clocks 2020-12-23 21:10:41 +00:00
intel_gt_debugfs.c drm/i915/gt: Cleanup interface for MCR operations 2022-06-17 08:05:40 -07:00
intel_gt_debugfs.h drm/i915/debugfs: Do not return '0' if there is nothing to return 2022-03-22 10:08:20 +00:00
intel_gt_engines_debugfs.c drm/i915: rename debugfs_engines files 2021-09-18 23:33:22 -07:00
intel_gt_engines_debugfs.h drm/i915: rename debugfs_engines files 2021-09-18 23:33:22 -07:00
intel_gt_irq.c drm/i915/pvc: Interrupt support for new copy engines 2022-05-10 15:32:07 -07:00
intel_gt_irq.h drm/i915/gt: Move CS interrupt handler to the backend 2021-05-25 15:14:40 +02:00
intel_gt_mcr.c drm/i915: Correct ss -> steering calculation for pre-Xe_HP platforms 2022-07-13 09:22:17 -07:00
intel_gt_mcr.h drm/i915/gt: Add general DSS steering iterator to intel_gt_mcr 2022-07-08 09:32:57 -07:00
intel_gt_pm.c Merge drm/drm-next into drm-intel-gt-next 2022-04-21 13:48:26 -04:00
intel_gt_pm.h drm/i915/gt: Ignore TLB invalidations on idle engines 2022-08-08 13:14:47 -04:00
intel_gt_pm_debugfs.c - General driver clean-up (Jani, Ville, Julia) 2022-06-24 12:07:47 +10:00
intel_gt_pm_debugfs.h drm/i915/debugfs: Do not return '0' if there is nothing to return 2022-03-22 10:08:20 +00:00
intel_gt_pm_irq.c drm/i915: Move GT registers to their own header file 2022-02-02 07:59:14 -08:00
intel_gt_pm_irq.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_gt_regs.h drm/i915/dg2: Add Wa_15010599737 2022-07-12 08:58:19 -07:00
intel_gt_requests.c drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC 2021-07-22 10:07:23 -07:00
intel_gt_requests.h drm/i915: use linux/stddef.h due to "isystem: trim/fixup stdarg.h and other headers" 2021-09-06 09:31:23 +02:00
intel_gt_sysfs.c drm/i915/gt: Fix memory leaks in per-gt sysfs 2022-06-13 13:04:31 +03:00
intel_gt_sysfs.h drm/i915/gt: Fix memory leaks in per-gt sysfs 2022-06-13 13:04:31 +03:00
intel_gt_sysfs_pm.c drm/i915: Prefer "XEHP_" prefix for registers 2022-06-27 07:44:25 -07:00
intel_gt_sysfs_pm.h drm/i915/gt: Create per-tile RC6 sysfs interface 2022-03-21 08:37:42 +00:00
intel_gt_types.h drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
intel_gtt.c Merge drm/drm-next into drm-intel-gt-next 2022-04-21 13:48:26 -04:00
intel_gtt.h drm/i915: Fix a lockdep warning at error capture 2022-06-29 14:52:50 +05:30
intel_hwconfig.h drm/i915/guc: Add fetch of hwconfig blob 2022-03-17 19:51:48 -07:00
intel_llc.c drm/i915/pcode: Extend pcode functions for multiple gt's 2022-05-20 09:11:27 +01:00
intel_llc.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_llc_types.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_lrc.c drm/i915/gt: Clear SET_PREDICATE_RESULT prior to executing the ring 2022-05-02 15:18:09 +05:30
intel_lrc.h drm/i915/guc: Support programming the EU priority in the GuC descriptor 2022-07-19 21:24:48 -04:00
intel_lrc_reg.h drm/i915/gt: Move engine registers to their own header 2022-01-11 14:03:25 -08:00
intel_migrate.c drm/i915/ttm: fix CCS handling 2022-08-23 21:27:04 -04:00
intel_migrate.h drm/i915: Avoid using the i915_fence_array when collecting dependencies 2021-12-22 08:14:30 +01:00
intel_migrate_types.h drm/i915/gt: Pipelined page migration 2021-06-17 14:23:05 +01:00
intel_mocs.c drm/i915/pvc: Define MOCS table for PVC 2022-05-10 15:30:05 -07:00
intel_mocs.h drm/i915/gt: Add "intel_" as prefix in set_mocs_index() 2021-09-20 08:23:27 -07:00
intel_ppgtt.c drm/i915: pass a pointer for tlb seqno at vma_invalidate_tlb() 2022-08-08 14:54:20 -04:00
intel_rc6.c - General driver clean-up (Jani, Ville, Julia) 2022-06-24 12:07:47 +10:00
intel_rc6.h drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
intel_rc6_types.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_region_lmem.c drm/i915: disable pci resize on 32-bit machine 2022-08-08 13:14:47 -04:00
intel_region_lmem.h drm/i915: Kill the fake lmem support 2022-02-18 22:31:46 -08:00
intel_renderstate.c drm/i915: split out i915_gem_internal.h from i915_drv.h 2022-02-11 12:52:50 +02:00
intel_renderstate.h drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
intel_reset.c drm/i915/gt: Serialize GRDOM access between multiple engine resets 2022-07-12 18:21:48 -04:00
intel_reset.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_reset_types.h drm/i915/gt: Remove repeated words from comments 2021-03-24 19:30:35 +01:00
intel_ring.c drm/i915: remove single-use GEM_DEBUG_EXEC() 2022-05-09 14:16:29 +03:00
intel_ring.h drm/i915/gt: Pipelined page migration 2021-06-17 14:23:05 +01:00
intel_ring_submission.c drm/i915: Improve user experience and driver robustness under SIGINT or similar 2022-06-17 09:03:11 +01:00
intel_ring_types.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
intel_rps.c - General driver clean-up (Jani, Ville, Julia) 2022-06-24 12:07:47 +10:00
intel_rps.h drm/i915/rps: Centralize computation of freq caps 2022-04-07 18:55:08 +05:30
intel_rps_types.h drm/i915/rps: Centralize computation of freq caps 2022-04-07 18:55:08 +05:30
intel_sseu.c drm/i915/pvc: Adjust EU per SS according to HAS_ONE_EU_PER_FUSE_BIT() 2022-06-14 14:52:13 -07:00
intel_sseu.h drm/i915/pvc: Add SSEU changes 2022-06-02 07:21:09 -07:00
intel_sseu_debugfs.c drm/i915/sseu: Disassociate internal subslice mask representation from uapi 2022-06-02 07:20:59 -07:00
intel_sseu_debugfs.h drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
intel_timeline.c drm/i915: don't include drm_cache.h in i915_drv.h 2022-02-14 13:19:37 +02:00
intel_timeline.h Merge tag 'drm-intel-gt-next-2021-04-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 12:46:12 +10:00
intel_timeline_types.h Merge tag 'drm-intel-gt-next-2021-04-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 12:46:12 +10:00
intel_workarounds.c drm/i915/dg2: Add Wa_15010599737 2022-07-12 08:58:19 -07:00
intel_workarounds.h drm/i915: Make wa list per-gt 2021-09-20 08:06:36 -07:00
intel_workarounds_types.h drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
ivb_clear_kernel.c
mock_engine.c drm/i915: Add ww ctx to i915_gem_object_trylock 2021-12-21 13:27:29 +01:00
mock_engine.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
selftest_context.c drm/i915/gt: Use to_gt() helper 2021-12-17 21:50:06 -08:00
selftest_engine.c drm/i915/gt: Use to_gt() helper 2021-12-17 21:50:06 -08:00
selftest_engine.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
selftest_engine_cs.c drm/i915/gt: Use to_gt() helper 2021-12-17 21:50:06 -08:00
selftest_engine_heartbeat.c drm/i915/gt: Use to_gt() helper 2021-12-17 21:50:06 -08:00
selftest_engine_heartbeat.h drm/i915/selftest: Fix hangcheck self test for GuC submission 2021-07-27 17:32:23 -07:00
selftest_engine_pm.c Merge drm/drm-next into drm-intel-next 2022-01-31 13:19:33 -05:00
selftest_execlists.c drm/i915: Remove the vm open count 2022-03-07 08:50:03 +01:00
selftest_gt_pm.c Merge drm/drm-next into drm-intel-next 2022-01-31 13:19:33 -05:00
selftest_hangcheck.c drm/i915/pvc: Reduce stack usage in reset selftest with extra blitter engine 2022-05-10 15:30:47 -07:00
selftest_llc.c drm/i915/pcode: Extend pcode functions for multiple gt's 2022-05-20 09:11:27 +01:00
selftest_llc.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
selftest_lrc.c drm/i915/selftests: fix a couple IS_ERR() vs NULL tests 2022-07-12 18:21:41 -04:00
selftest_migrate.c drm/i915/selftest_migrate: Check CCS meta data clear 2022-04-14 13:20:29 +05:30
selftest_mocs.c drm/i915/gt: Use to_gt() helper 2021-12-17 21:50:06 -08:00
selftest_rc6.c drm/i915/gt: replace IS_GEN and friends with GRAPHICS_VER 2021-06-05 15:09:06 -07:00
selftest_rc6.h drm/i915/gt: SPDX cleanup 2021-03-24 19:30:34 +01:00
selftest_reset.c drm/i915/gt: Use to_gt() helper for GGTT accesses 2022-01-05 10:33:44 -08:00
selftest_ring.c
selftest_ring_submission.c drm/i915/gt: Use to_gt() helper 2021-12-17 21:50:06 -08:00
selftest_rps.c drm/i915/pcode: Extend pcode functions for multiple gt's 2022-05-20 09:11:27 +01:00
selftest_rps.h
selftest_slpc.c drm/i915/guc/slpc: Add a new SLPC selftest 2022-06-29 13:50:23 -07:00
selftest_timeline.c drm/i915: Use str_yes_no() 2022-03-02 08:48:13 -08:00
selftest_workarounds.c drm/i915: split out i915_gem_internal.h from i915_drv.h 2022-02-11 12:52:50 +02:00
shmem_utils.c drm/i915/gt: Add helper for shmem copy to iosys_map 2022-02-25 15:23:18 -08:00
shmem_utils.h drm/i915/gt: Add helper for shmem copy to iosys_map 2022-02-25 15:23:18 -08:00
st_shmem_utils.c
sysfs_engines.c drm/i915/gt: Cleanup kasan warning for on-stack (unsigned long) casting 2020-10-16 11:08:44 +01:00
sysfs_engines.h