linux_dsm_epyc7002/drivers/gpu/drm/i915
Mika Kuoppala 2c80353f3c drm/i915/g4x: Improve gpu reset reliability
ELK seems to very picky about the preconditions to reset.
Evidence on Eaglelake (8086:2e12 (rev 03)) shows that it does
not like if reset occurs when there is active ring.

Ville found out that there is workaround with name
'WaMediaResetMainRingCleanup' which suggests that we need to
cleanup rings before resetting. It is unclear what cleanup
exactly means but evidence shows that stopping the ring
does have an effect on reset reliability. This patch makes
reset successful on hangs induced by chained batches (the igt ones).
Note that if the hang is inside a shader, it is possible
that our attempts to stop the ring achieves anything.

v2: zero ctl,head,tail also. bug ref. use driver debugs (Chris)
v3: specify platform on testcases, comment tidyup (Chris)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100942
Testcase: igt/gem_busy/*-hang #elk
Testcase: igt/gem_ringfill/hang-* #elk
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170519091340.21439-1-mika.kuoppala@intel.com
2017-05-19 13:59:09 +03:00
..
gvt drm/i915: Use engine->context_pin() to report the intel_ring 2017-05-04 11:54:43 +01:00
selftests drm/i915/selftests: Pretend to be a gfx pci device 2017-05-18 15:43:49 +01:00
dvo_ch7xxx.c
dvo_ch7017.c drm/i915/lvds: Remove magic from PLL programming 2017-05-10 13:47:55 +03:00
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Redefine ptr_pack_bits() and friends 2017-05-17 13:38:04 +01:00
i915_debugfs.c drm/i915/guc: Remove last submission result from debugfs 2017-05-19 11:25:40 +01:00
i915_drv.c drm/i915: Do not leak dev_priv->l3_parity.remap_info[] 2017-05-02 12:09:13 +03:00
i915_drv.h drm/i915/skl+: use linetime latency if ddb size is not available 2017-05-17 14:34:21 -07:00
i915_gem_batch_pool.c drm/i915: Retire an active batch pool object rather than allocate new 2017-03-17 17:57:20 +00:00
i915_gem_batch_pool.h
i915_gem_clflush.c drm/i915: Mark up clflushes as belonging to an unordered timeline 2017-05-03 11:08:45 +01:00
i915_gem_clflush.h drm/i915: Mark up clflushes as belonging to an unordered timeline 2017-05-03 11:08:45 +01:00
i915_gem_context.c drm/i915: Use a define for the default priority [0] 2017-05-17 13:38:08 +01:00
i915_gem_context.h drm/i915: make context status notifier head be per engine 2017-03-21 16:51:47 +02:00
i915_gem_dmabuf.c drm/i915: Implement dma_buf_ops->kmap 2017-05-03 23:15:02 +01:00
i915_gem_evict.c drm/i915: Move retire-requests into i915_gem_wait_for_idle() 2017-03-31 12:03:46 +01:00
i915_gem_execbuffer.c drm/i915: Copy user requested buffers into the error state 2017-04-15 12:39:57 +01:00
i915_gem_fence_reg.c drm/i915: Take rpm wakelock for releasing the fence on unbind 2017-03-06 14:38:18 +00:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: use vma->size for appgtt allocate_va_range 2017-05-16 11:26:36 +01:00
i915_gem_gtt.h drm/i915: Avoid using word legacy with ppgtt 2017-03-03 16:46:23 +02:00
i915_gem_internal.c Linux 4.10-rc8 2017-02-23 12:10:12 +10:00
i915_gem_object.h drm/i915: Use pagecache write to prepopulate shmemfs from pwrite-ioctl 2017-03-09 10:46:07 +02:00
i915_gem_render_state.c scripts/spelling.txt: add "aligment" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
i915_gem_render_state.h
i915_gem_request.c drm/i915: Split execlist priority queue into rbtree + linked list 2017-05-17 13:38:09 +01:00
i915_gem_request.h drm/i915: Split execlist priority queue into rbtree + linked list 2017-05-17 13:38:09 +01:00
i915_gem_shrinker.c drm/i915: Do not sync RCU during shrinking 2017-05-11 15:58:23 +03:00
i915_gem_stolen.c drm/i915/gvt: Disable access to stolen memory as a guest 2017-02-16 11:59:13 +02:00
i915_gem_tiling.c drm/i915: Prevent concurrent tiling/framebuffer modifications 2017-03-01 17:57:17 +00:00
i915_gem_timeline.c drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_gem_timeline.h drm/i915: Rename intel_timeline.sync_seqno[] to .global_sync[] 2017-05-03 11:08:52 +01:00
i915_gem_userptr.c drm/i915/userptr: Reinvent GGTT self-faulting protection 2017-03-16 10:21:25 +00:00
i915_gem.c drm/i915: Create a kmem_cache to allocate struct i915_priolist from 2017-05-17 13:38:12 +01:00
i915_gem.h drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_gpu_error.c drm/i915/execlists: Pack the count into the low bits of the port.request 2017-05-17 13:38:06 +01:00
i915_guc_reg.h
i915_guc_submission.c drm/i915/guc: Remove last submission result from debugfs 2017-05-19 11:25:40 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Don't force serialisation on marking up execlists irq posted 2017-05-17 13:38:15 +01:00
i915_memcpy.c
i915_mm.c
i915_oa_hsw.c
i915_oa_hsw.h
i915_params.c drm/i915/uc: Add params for specifying firmware 2017-03-15 14:26:30 +02:00
i915_params.h drm/i915/uc: Add params for specifying firmware 2017-03-15 14:26:30 +02:00
i915_pci.c drm/i915: Eliminate HAS_HW_CONTEXTS 2017-04-28 12:11:59 +03:00
i915_perf.c drm/i915/perf: rate limit spurious oa report notice 2017-05-13 11:03:43 +01:00
i915_pvinfo.h
i915_reg.h drm/i915: Fix new -Wint-in-bool-context gcc compiler warning 2017-05-18 14:32:23 +03:00
i915_selftest.h drm/i915: Use fault-injection to force the shrinker to run in live GTT tests 2017-02-13 20:46:32 +00:00
i915_suspend.c
i915_sw_fence.c drm/i915: Import the kfence selftests for i915_sw_fence 2017-05-17 13:38:02 +01:00
i915_sw_fence.h drm/i915: Remove kref from i915_sw_fence 2017-05-17 13:38:01 +01:00
i915_syncmap.c drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_syncmap.h drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_sysfs.c drm/i915: Do not leak dev_priv->l3_parity.remap_info[] 2017-05-02 12:09:13 +03:00
i915_trace_points.c
i915_trace.h drm/i915: Add g4x watermark tracepoint 2017-05-10 16:48:32 +03:00
i915_utils.h drm/i915: Split execlist priority queue into rbtree + linked list 2017-05-17 13:38:09 +01:00
i915_vgpu.c drm/i915: Fix vGPU balloon for ggtt guard page 2017-03-17 09:41:27 +00:00
i915_vgpu.h
i915_vma.c drm/i915: Remove the vma from the drm_mm if binding fails 2017-03-09 10:43:55 +02:00
i915_vma.h drm/i915: Exercise i915_vma_pin/i915_vma_insert 2017-02-13 20:46:41 +00:00
intel_acpi.c
intel_atomic_plane.c drm/i915: Remove vma unpin in intel_plane_destroy 2017-05-11 11:30:27 +02:00
intel_atomic.c drm/i915: Skip useless watermark/FIFO related work on VLV/CHV when not needed 2017-03-03 16:50:10 +02:00
intel_audio.c drm/i915: Reorganize intel_lpe_audio_notify() arguments 2017-05-03 16:20:48 +03:00
intel_bios.c drm/i915/vbt: split out defaults that are set when there is no VBT 2017-03-14 10:49:13 +02:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Apply a cond_resched() to the saturated signaler 2017-04-26 16:27:58 +03:00
intel_cdclk.c drm/i915: Fix rawclk readout for g4x 2017-05-05 19:49:47 +03:00
intel_color.c drm/i915/glk: Improve rounding caused by pre-CSC gamma tables 2017-03-14 16:07:00 +02:00
intel_crt.c drm/i915: Convert intel_crt connector properties to atomic. 2017-04-12 10:53:22 +02:00
intel_csr.c drm/i915: update the firmware download URL 2017-03-28 11:17:37 +03:00
intel_ddi.c drm/i915: make a few DDI functions static 2017-03-31 11:32:41 -03:00
intel_device_info.c drm/i915: Add support for sprites on g4x 2017-05-10 16:48:32 +03:00
intel_display.c gpu: drm: i915: compress logic into one line 2017-05-16 11:28:01 +02:00
intel_dp_aux_backlight.c drm/i915: Restore brightness level in aux backlight driver 2017-05-12 15:51:20 +03:00
intel_dp_link_training.c drm/i915: Implement Link Rate fallback on Link training failure 2017-04-13 21:57:37 +03:00
intel_dp_mst.c drm/i915: Convert intel_dp_mst connector properties to atomic. 2017-04-12 10:53:22 +02:00
intel_dp.c drm/i915/dp: Check error return during DPCD capability queries 2017-05-10 13:47:40 +03:00
intel_dpio_phy.c
intel_dpll_mgr.c Linux 4.10-rc8 2017-02-23 12:10:12 +10:00
intel_dpll_mgr.h drm/i915: Remove unused function intel_ddi_get_link_dpll() 2017-02-10 11:40:27 +02:00
intel_drv.h drm/i915: Clean up cursor junk from intel_crtc 2017-05-10 19:03:00 +03:00
intel_dsi_dcs_backlight.c
intel_dsi_pll.c drm/i915/glk: Validate only DSI PORT A PLL divider 2017-02-28 11:54:52 +02:00
intel_dsi_vbt.c drm/i915/glk: Calculate high/low switch count for GLK 2017-05-15 18:29:46 +03:00
intel_dsi.c drm/i915/glk: Fix DSI "*ERROR* ULPS is still active" messages 2017-04-28 17:09:06 +03:00
intel_dsi.h drm/i915/dsi: arrange intel_dsi.h according to relevant files 2017-03-07 15:18:43 +02:00
intel_dvo.c drm/i915: Convert intel DVO connector to atomic 2017-04-12 10:53:29 +02:00
intel_engine_cs.c drm/i915: Split execlist priority queue into rbtree + linked list 2017-05-17 13:38:09 +01:00
intel_fbc.c drm/i915: Use new atomic iterator macros in fbc 2017-03-13 12:06:40 +01:00
intel_fbdev.c drm/i915/fbdev: Stop repeating tile configuration on stagnation 2017-03-09 10:43:17 +02:00
intel_fifo_underrun.c drm/i915: Add FIFO underrun tracepoints 2017-03-03 16:50:11 +02:00
intel_frontbuffer.c drm/i915: Remove 'retire' parameter from intel_fb_obj_flush 2017-02-22 12:12:17 +00:00
intel_frontbuffer.h drm/i915: Remove 'retire' parameter from intel_fb_obj_flush 2017-02-22 12:12:17 +00:00
intel_guc_fwif.h drm/i915/guc: Use GUC prefix for CORE_FAMILY definitions 2017-04-05 10:06:38 +01:00
intel_guc_loader.c drm/i915/guc: write wopcm related register once during uc init 2017-04-13 14:01:01 +03:00
intel_guc_log.c drm/i915: Treat WC a separate cache domain 2017-04-12 12:35:17 +01:00
intel_gvt.c drm/i915/gvt: Turn on KBL platform support. 2017-03-29 15:28:51 +08:00
intel_gvt.h
intel_hangcheck.c drm/i915: Avoid format string expansion from engine names 2017-04-19 15:49:27 +03:00
intel_hdmi.c drm/i915/glk: Don't allow 12 bpc when htotal is too big 2017-04-26 19:03:36 +03:00
intel_hotplug.c drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4. 2017-04-06 21:29:23 +02:00
intel_huc.c drm/i915/guc: write wopcm related register once during uc init 2017-04-13 14:01:01 +03:00
intel_i2c.c
intel_lpe_audio.c ALSA: x86: Register multiple PCM devices for the LPE audio card 2017-05-03 16:24:00 +03:00
intel_lrc.c drm/i915/execlists: Reduce lock contention between schedule/submit_request 2017-05-17 13:38:13 +01:00
intel_lrc.h drm/i915: Sanitize engine context sizes 2017-04-28 12:11:59 +03:00
intel_lspcon.c drm/i915/lspcon: Fix resume time initialization due to unasserted HPD 2017-02-16 11:59:10 +02:00
intel_lvds.c drm/i915: Store encoder power domain in struct intel_encoder 2017-02-27 09:07:51 +02:00
intel_mocs.c drm/i915: Emit to ringbuffer directly 2017-02-14 14:30:46 +00:00
intel_mocs.h
intel_modes.c
intel_opregion.c drm/i915/opregion: debug log about invalid ACPI OpRegion VBT 2017-03-30 09:12:36 +03:00
intel_overlay.c drm/i915: Remove superfluous i915_add_request_no_flush() helper 2017-03-17 13:03:25 +00:00
intel_panel.c drm/i915: Check error return when converting pipe to connector 2017-05-10 13:47:49 +03:00
intel_pipe_crc.c drm/i915: use memdup_user_nul 2017-05-08 09:28:39 +02:00
intel_pm.c drm/i915/skl+: use linetime latency if ddb size is not available 2017-05-17 14:34:21 -07:00
intel_psr.c
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: Micro-optimise hotpath through intel_ring_begin() 2017-05-04 15:40:38 +01:00
intel_ringbuffer.h drm/i915: Split execlist priority queue into rbtree + linked list 2017-05-17 13:38:09 +01:00
intel_runtime_pm.c drm/i915: WARN if the core runtime PM get helpers fail 2017-03-28 16:02:10 +03:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915/sdvo: Check error return from intel_sdvo_get_value() 2017-05-10 13:47:43 +03:00
intel_sideband.c drm/i915: Distinguish between timeout and error in sideband transactions 2017-02-27 17:22:19 +00:00
intel_sprite.c drm/i915: Pass intel_plane and intel_crtc to plane hooks 2017-05-10 18:59:36 +03:00
intel_tv.c drm/i915: Convert intel_tv connector properties to atomic, v5. 2017-04-12 10:53:22 +02:00
intel_uc.c drm/i915/guc: Make scratch register base and count flexible 2017-05-11 12:49:26 +03:00
intel_uc.h drm/i915/guc: Remove last submission result from debugfs 2017-05-19 11:25:40 +01:00
intel_uncore.c drm/i915/g4x: Improve gpu reset reliability 2017-05-19 13:59:09 +03:00
intel_uncore.h drm/i915: Move uncore definitions into a separate header 2017-05-09 16:02:47 +03:00
intel_vbt_defs.h
Kconfig Merge tag 'topic/designware-baytrail-2017-03-02' of git://anongit.freedesktop.org/git/drm-intel into drm-intel-next-queued 2017-03-13 09:26:06 +01:00
Kconfig.debug drm/i915: Import the kfence selftests for i915_sw_fence 2017-05-17 13:38:02 +01:00
Makefile drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00