[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