linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson b2295e2ecc drm/i915/gt: Be defensive in the face of false CS events
If the HW throws a curve ball and reports either en event before it is
possible, or just a completely impossible event, we have to grin and
bear it. The first few events, we will likely not notice as we would be
expecting some event, but as soon as we stop expecting an event and yet
they still keep coming, then we enter into undefined state territory.
In which case, bail out, stop processing the events, and reset the
engine and our set of queued requests to recover.

The sporadic hangs and warnings will continue to plague CI, but at least
system stability should not be compromised.

v2: Commentary and force the reset-on-error.
v3: Customised user facing message for forced resets from internal errors.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2045
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200710133125.30194-1-chris@chris-wilson.co.uk
2020-07-10 15:24:17 +01:00
..
display drm/i915/bios: Parse HOBL parameter 2020-07-09 12:33:24 -07:00
gem drm/i915: Remove i915_gem_object_get_dirty_page() 2020-07-08 22:05:51 +01:00
gt drm/i915/gt: Be defensive in the face of false CS events 2020-07-10 15:24:17 +01:00
gvt drm/i915: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +01:00
selftests drm/i915/selftest: Check that GPR are restored across noa_wait 2020-07-10 10:20:38 +01:00
.gitignore
i915_active_types.h
i915_active.c
i915_active.h
i915_buddy.c
i915_buddy.h
i915_cmd_parser.c drm/i915: Whitelist context-local timestamp in the gen9 cmdparser 2020-06-02 16:35:29 +03:00
i915_config.c drm/i915: Replace the hardcoded I915_FENCE_TIMEOUT 2020-05-09 12:57:57 +01:00
i915_debugfs_params.c drm/i915/params: switch to device specific parameters 2020-06-22 23:26:40 +03:00
i915_debugfs_params.h
i915_debugfs.c drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
i915_debugfs.h
i915_drv.c drm/i915: Introduce gt_init_mmio 2020-07-08 21:07:13 +01:00
i915_drv.h drm/i915/bios: Parse HOBL parameter 2020-07-09 12:33:24 -07:00
i915_fixed.h
i915_gem_evict.c drm/i915: Handle idling during i915_gem_evict_something busy loops 2020-05-13 14:39:41 -07:00
i915_gem_gtt.c drm/i915: Update dma-attributes for our sg DMA 2020-07-07 11:00:47 +01:00
i915_gem_gtt.h drm/i915: Remove PIN_UPDATE for i915_vma_pin 2020-05-21 17:33:51 +01:00
i915_gem.c drm/i915: Leave vma intact as they are discarded 2020-06-12 10:13:07 +01:00
i915_gem.h drm/i915: Print caller when tainting for CI 2020-07-06 19:21:07 +01:00
i915_getparam.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
i915_globals.c
i915_globals.h
i915_gpu_error.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
i915_gpu_error.h drm/i915: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +01:00
i915_ioc32.c i915 compat ioctl(): just use drm_ioctl_kernel() 2020-05-01 20:35:26 -04:00
i915_ioc32.h
i915_irq.c drm/i915: Extend Wa_14010685332 to all ICP+ PCH's 2020-06-25 22:39:50 -07:00
i915_irq.h
i915_memcpy.c
i915_memcpy.h
i915_mm.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
i915_params.c drm/i915: fix a couple of spelling mistakes in kernel parameter help text 2020-06-30 11:30:02 +03:00
i915_params.h drm/i915: Add psr_safest_params 2020-06-04 19:36:48 -07:00
i915_pci.c drm/i915: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +01:00
i915_perf_types.h
i915_perf.c drm/i915/perf: Use GTT when saving/restoring engine GPR 2020-07-10 10:20:34 +01:00
i915_perf.h
i915_pmu.c drm/i915/gt: Always report the sample time for busy-stats 2020-06-18 09:26:54 +01:00
i915_pmu.h
i915_priolist_types.h drm/i915/gt: Prevent timeslicing into unpreemptable requests 2020-06-16 11:34:23 +03:00
i915_pvinfo.h
i915_query.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
i915_query.h
i915_reg.h drm/i915/display: Implement new combo phy initialization step 2020-07-07 13:16:31 -07:00
i915_request.c drm/i915: Drop i915_request.i915 backpointer 2020-06-03 13:53:39 +01:00
i915_request.h drm/i915: Mark up inline getters as taking a const i915_request 2020-06-16 21:13:58 +01:00
i915_scatterlist.c
i915_scatterlist.h
i915_scheduler_types.h drm/i915: Drop no-semaphore boosting 2020-05-14 06:14:33 +01:00
i915_scheduler.c drm/i915: Don't set queue-priority hint when supressing the reschedule 2020-05-25 15:40:26 +03:00
i915_scheduler.h drm/i915: Mark concurrent submissions with a weak-dependency 2020-05-11 10:54:04 -07:00
i915_selftest.h drm/i915/gem: Implement legacy MI_STORE_DATA_IMM 2020-05-04 15:15:04 +01:00
i915_suspend.c
i915_suspend.h
i915_sw_fence_work.c
i915_sw_fence_work.h
i915_sw_fence.c drm/i915: Tidy awaiting on dma-fences 2020-05-11 12:56:45 +01:00
i915_sw_fence.h
i915_switcheroo.c
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c
i915_sysfs.h
i915_trace_points.c
i915_trace.h drm/i915: Drop i915_request.i915 backpointer 2020-06-03 13:53:39 +01:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm/i915: Don't taint when using fault injection 2020-07-06 19:21:07 +01:00
i915_utils.h drm/i915: Print caller when tainting for CI 2020-07-06 19:21:07 +01:00
i915_vgpu.c
i915_vgpu.h
i915_vma_types.h drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
i915_vma.c drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
i915_vma.h drm/i915/gt: Remove local entries from GGTT on suspend 2020-05-28 16:55:15 +01:00
intel_device_info.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_device_info.h drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_dram.c
intel_dram.h
intel_gvt.c drm/i915/params: switch to device specific parameters 2020-06-22 23:26:40 +03:00
intel_gvt.h
intel_memory_region.c
intel_memory_region.h
intel_pch.c drm/i915: Identify Cometlake platform 2020-06-02 23:15:34 +01:00
intel_pch.h
intel_pm.c drm/i915: Document FBC related w/as more thoroughly 2020-07-09 16:50:53 +03:00
intel_pm.h drm/i915: Fix includes and local vars order 2020-05-22 14:40:35 +01:00
intel_region_lmem.c drm/i915/params: switch to device specific parameters 2020-06-22 23:26:40 +03:00
intel_region_lmem.h
intel_runtime_pm.c Merge drm/drm-next into drm-intel-next-queued 2020-06-25 18:05:03 +03:00
intel_runtime_pm.h
intel_sideband.c drm/i915: Added required new PCode commands 2020-05-05 13:59:55 +03:00
intel_sideband.h
intel_uncore.c drm/i915: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +01:00
intel_uncore.h drm/i915: Use the gt in HAS_ENGINE 2020-07-08 21:07:09 +01:00
intel_wakeref.c
intel_wakeref.h
intel_wopcm.c drm/i915: Remove cnl pre-prod workarounds 2020-05-04 18:44:52 +03:00
intel_wopcm.h
Kconfig
Kconfig.debug
Kconfig.profile drm/i915: Replace the hardcoded I915_FENCE_TIMEOUT 2020-05-09 12:57:57 +01:00
Kconfig.unstable
Makefile drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
vlv_suspend.c
vlv_suspend.h