[Intel-gfx] [PATCH] drm/i915: Lie and treat all engines as idle if wedged
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Tue Apr 11 08:23:30 UTC 2017
On ma, 2017-04-10 at 17:24 +0100, Chris Wilson wrote:
> Similar to commit 8490ae207f1d ("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: 2ca9faa551c4 ("drm/i915: Assert the engine is idle before overwiting the HWS")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Makes sense if hoisting the check would spread it all over.
Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Regards, Joonas
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
More information about the Intel-gfx
mailing list