linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson a8e9a419c3 drm/i915: Lie and treat all engines as idle if wedged
Similar to commit 8490ae207f ("drm/i915: Suppress busy status for
engines if wedged") we also want to report intel_engine_is_idle() as
true as well as the main intel_engines_are_idle(), as we now check that
the engines are idle when overwriting the HWS page. This is not true
whilst we are setting the device as wedged, at least according to our
bookkeeping, so we have to lie to ourselves!

[  383.588601] [drm:i915_reset [i915]] *ERROR* Failed to reset chip: -110
[  383.588685] ------------[ cut here ]------------
[  383.588755] WARNING: CPU: 0 PID: 12 at drivers/gpu/drm/i915/intel_engine_cs.c:226 intel_engine_init_global_seqno+0x222/0x290 [i915]
[  383.588757] WARN_ON(!intel_engine_is_idle(engine))
[  383.588759] Modules linked in: ctr ccm snd_hda_codec_hdmi snd_hda_codec_conexant snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core arc4 iwldvm mac80211 snd_pcm snd_hwdep snd_seq_midi snd_seq_midi_event rfcomm bnep snd_rawmidi intel_powerclamp coretemp dm_multipath iwlwifi crct10dif_pclmul snd_seq crc32_pclmul ghash_clmulni_intel btusb aesni_intel btrtl btbcm aes_x86_64 crypto_simd cryptd btintel snd_timer glue_helper bluetooth intel_ips snd_seq_device cfg80211 snd soundcore binfmt_misc mei_me mei dm_mirror dm_region_hash dm_log i915 intel_gtt i2c_algo_bit drm_kms_helper cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt fb_sys_fops cfbcopyarea prime_numbers ahci libahci drm e1000e
[  383.588851] CPU: 0 PID: 12 Comm: migration/0 Not tainted 4.11.0-rc5+ #207
[  383.588853] Hardware name: LENOVO 514328U/514328U, BIOS 6QET44WW (1.14 ) 04/20/2010
[  383.588855] Call Trace:
[  383.588866]  dump_stack+0x63/0x90
[  383.588871]  __warn+0xc7/0xf0
[  383.588876]  warn_slowpath_fmt+0x4a/0x50
[  383.588883]  ? set_next_entity+0x821/0x910
[  383.588943]  intel_engine_init_global_seqno+0x222/0x290 [i915]
[  383.588998]  __i915_gem_set_wedged_BKL+0xa4/0x190 [i915]
[  383.589003]  ? __switch_to+0x215/0x390
[  383.589008]  multi_cpu_stop+0xbb/0xe0
[  383.589012]  ? cpu_stop_queue_work+0x90/0x90
[  383.589016]  cpu_stopper_thread+0x82/0x110
[  383.589021]  smpboot_thread_fn+0x137/0x190
[  383.589026]  kthread+0xf7/0x130
[  383.589030]  ? sort_range+0x20/0x20
[  383.589034]  ? kthread_park+0x90/0x90
[  383.589040]  ret_from_fork+0x2c/0x40

Fixes: 2ca9faa551 ("drm/i915: Assert the engine is idle before overwiting the HWS")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170411190042.25662-1-chris@chris-wilson.co.uk
2017-04-11 20:49:41 +01:00
..
gvt drm/i915/gvt: control the scheduler by timeslice usage 2017-03-30 13:34:10 +08:00
selftests drm/i915: Generate the engine name based on the instance number 2017-04-11 12:58:10 +01:00
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Rename intel_engine_cs.exec_id to uabi_id 2017-04-11 14:31:39 +01:00
i915_debugfs.c drm/i915: Use drm_i915_private directly from debugfs 2017-04-10 12:04:23 +01:00
i915_drv.c drm/i915: Suspend GuC prior to GPU Reset during GEM suspend 2017-04-06 11:10:01 +01:00
i915_drv.h drm/i915: Drop const qualifiers from params in wait_for_register() 2017-04-10 14:05:28 +01: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: Wait for all fences before installing an exclusive clflush fence 2017-03-23 12:02:53 +00:00
i915_gem_clflush.h drm/i915: Perform object clflushing asynchronously 2017-02-22 12:12:15 +00:00
i915_gem_context.c drm/i915: Disable MI_SET_CONTEXT psmi w/a for bdw 2017-03-24 17:10:10 +00: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 Merge tag 'drm-intel-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-03-08 12:41:47 +10: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: Align "unfenced" tiled access on gen2, early gen3 2017-03-27 12:48:45 +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 drm/i915: Replace 4096 with PAGE_SIZE or I915_GTT_PAGE_SIZE 2017-01-10 20:54:32 +00:00
i915_gem_gtt.c drm/i915: Ironlake do_idle_maps w/a may be called w/o struct_mutex 2017-03-30 11:17:43 +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: Advance ring->head fully when idle 2017-04-07 10:10:58 +01:00
i915_gem_request.h drm/i915: Remove superfluous i915_add_request_no_flush() helper 2017-03-17 13:03:25 +00:00
i915_gem_shrinker.c drm/i915: Simplify shrinker locking 2017-04-07 14:33:39 +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: Assert all timeline requests are gone before fini 2017-01-05 15:34:40 +00:00
i915_gem_timeline.h drm/i915: Keep a global seqno per-engine 2017-02-23 14:49:26 +00: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: Rename intel_engine_cs.exec_id to uabi_id 2017-04-11 14:31:39 +01:00
i915_gem.h drm/i915: Rename conditional GEM execution macros 2017-02-10 21:43:43 +00:00
i915_gpu_error.c drm/i915: Split breadcrumbs spinlock into two 2017-03-03 20:19:13 +00:00
i915_guc_reg.h drm/i915/huc: Add HuC fw loading support 2017-01-19 11:18:55 +02:00
i915_guc_submission.c Revert "drm/i915: Skip execlists_dequeue() early if the list is empty" 2017-03-29 13:02:24 +01:00
i915_ioc32.c
i915_irq.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-03-28 10:02:45 +02: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: Align "unfenced" tiled access on gen2, early gen3 2017-03-27 12:48:45 +01:00
i915_perf.c drm/i915/perf: remove user triggerable warn 2017-03-28 14:52:43 +03:00
i915_pvinfo.h
i915_reg.h drm/i915: Classify the engines in class + instance 2017-04-11 12:57:31 +01: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 gpu: drm: drivers: Convert printk(KERN_<LEVEL> to pr_<level> 2017-03-01 09:44:11 +01:00
i915_sw_fence.h
i915_sysfs.c drm/i915: Return residency as microseconds 2017-03-16 12:28:28 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Avoid use-after-free of ctx in request tracepoints 2017-03-17 07:59:48 +00:00
i915_utils.h drm/i915: Move WARN_ON/MISSING_CASE macros to i915_utils.h 2017-03-29 11:10:28 +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: Add plane update/disable tracepoints 2017-03-03 16:50:10 +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 Merge tag 'drm-intel-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-03-08 12:41:47 +10: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-04 13:48:21 +01:00
intel_cdclk.c drm/i915/glk: limit pixel clock to 99% of cdclk workaround 2017-04-06 14:45:26 +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: Store encoder power domain in struct intel_encoder 2017-02-27 09:07:51 +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/glk: Enable pooled EUs for Geminilake 2017-03-17 17:05:36 +02:00
intel_display.c drm/i915: Simplify shrinker locking 2017-04-07 14:33:39 +03:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915/dp: generate and cache sink rate array for all DP, not just eDP 1.4 2017-04-06 14:34:02 +03:00
intel_dp_mst.c drm/i915/mst: use max link not sink lane count 2017-04-11 16:54:31 +03:00
intel_dp.c drm/i915/dp: read sink count to a temporary variable first 2017-04-11 16:54:33 +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/mst: use max link not sink lane count 2017-04-11 16:54:31 +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/dsi: rename intel_dsi_panel_vbt.c to intel_dsi_vbt.c 2017-03-07 15:18:24 +02:00
intel_dsi.c drm/i915/dsi: rename intel_dsi_pre_disable to intel_dsi_disable 2017-03-07 15:18:13 +02: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: Store encoder power domain in struct intel_encoder 2017-02-27 09:07:51 +02:00
intel_engine_cs.c drm/i915: Lie and treat all engines as idle if wedged 2017-04-11 20:49:41 +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/GLK: Load GuC on GLK 2017-04-07 10:23:19 +03:00
intel_guc_log.c drm/i915/guc: Break out the GuC log extras into their own "runtime" struct 2017-03-23 14:58:02 +02: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: Add initial selftests for hang detection and resets 2017-02-13 20:46:53 +00:00
intel_hdmi.c drm/i915: Typo fix - 'pipe bpc' to 'pipe bpp' 2017-04-05 10:54:50 +03:00
intel_hotplug.c drm/i915: Only enable hotplug interrupts if the display interrupts are enabled 2017-03-14 12:27:20 +02:00
intel_huc.c drm/i915/GLK/HuC: Load HuC on GLK 2017-04-07 10:23:32 +03:00
intel_i2c.c drm/i915: Introduce IS_GEN9_BC for Skylake and Kabylake. 2017-01-24 10:29:00 -08:00
intel_lpe_audio.c drivers: gpu: drm: i915L intel_lpe_audio: Fix kerneldoc comments 2017-03-31 08:28:49 +02:00
intel_lrc.c drm/i915: Use the engine class to get the context size 2017-04-11 19:44:04 +01:00
intel_lrc.h drm/i915: Move engine->submit_request selection to a vfunc 2017-03-16 17:17:12 +00: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: Start moving the cdclk stuff into a distinct state structure 2017-02-08 18:07:10 +02:00
intel_pipe_crc.c Merge tag 'drm-intel-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-03-08 12:41:47 +10:00
intel_pm.c drm/i915: Use __intel_uncore_wait_for_register_fw for sandybride_pcode_read 2017-04-11 12:47:17 +01:00
intel_psr.c drm/i915/psr: Fix compiler warnings for hsw_psr_disable() 2017-01-18 10:25:01 +00:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: Use the same vfunc for BSD2 ring init 2017-04-11 12:57:51 +01:00
intel_ringbuffer.h drm/i915: Rename intel_engine_cs.exec_id to uabi_id 2017-04-11 14:31:39 +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: Store encoder power domain in struct intel_encoder 2017-02-27 09:07:51 +02: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: Use i9xx_check_plane_surface() for sprite planes as well 2017-03-27 15:58:33 +03:00
intel_tv.c drm/i915: Store encoder power domain in struct intel_encoder 2017-02-27 09:07:51 +02:00
intel_uc.c drm/i915/guc: Use wait_for_register_fw() while waiting for MMIO response 2017-04-07 18:48:41 +01:00
intel_uc.h drm/i915/huc: Simplify intel_huc_init_hw() 2017-04-04 14:23:34 +01:00
intel_uncore.c drm/i915: Acquire uncore.lock over intel_uncore_wait_for_register() 2017-04-11 12:44:34 +01: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/tracepoints: Add request submit and execute tracepoints 2017-02-21 13:18:14 +00:00
Makefile Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-03-08 10:54:45 +01:00