I have regular GPU hangs in many applications (like kwin_x11 and chrome) this is just an example. I seem to be able to mitigate all hangs by disabling screen energy saving option in powermanagement setup, but then my screens never sleep, which is a work-around I'm not happy with. Intel driver from intel archive: 2.99.917+git20150808-0ubuntu4, libdrm-intel: 4.65-3. [33805.322716] [drm] stuck on render ring [33805.323264] [drm] GPU HANG: ecode 7:0:0x85fffffc, in kscreenlocker_g [14201], reason: Ring hung, action: reset [33805.323266] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace. [33805.323267] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel [33805.323268] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue. [33805.323268] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it. [33805.323269] [drm] GPU crash dump saved to /sys/class/drm/card0/error [33805.323344] ------------[ cut here ]------------ [33805.323352] WARNING: CPU: 0 PID: 29127 at drivers/gpu/drm/i915/intel_display.c:11289 intel_mmio_flip_work_func+0x360/0x3a0() [33805.323353] WARN_ON(__i915_wait_request(mmio_flip->req, mmio_flip->crtc->reset_counter, false, NULL, &mmio_flip->i915->rps.mmioflips)) [33805.323355] Modules linked in: [33805.323357] drbg ansi_cprng ctr ccm hid_generic hidp rfcomm vboxpci(O) vboxnetadp(O) vboxnetflt(O) bnep vboxdrv(O) dell_wmi sparse_keymap uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 kvm_intel videobuf2_core kvm irqbypass arc4 btusb btbcm btintel iwldvm aesni_intel aes_x86_64 lrw mac80211 gf128mul glue_helper ablk_helper cryptd snd_hda_codec_hdmi iwlwifi serio_raw snd_hda_codec_realtek snd_hda_codec_generic cfg80211 snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer wmi nfsd auth_rpcgss oid_registry nfs_acl lockd grace sunrpc gspca_sunplus gspca_main psmouse xhci_pci ehci_pci ehci_hcd xhci_hcd [33805.323398] CPU: 0 PID: 29127 Comm: kworker/0:0 Tainted: G O 4.4.4 #13 [33805.323400] Hardware name: Dell Inc. XPS L322X/0PJHXN, BIOS A10 08/28/2013 [33805.323404] Workqueue: events intel_mmio_flip_work_func [33805.323406] 0000000000000000 ffffffff812b9779 ffff8801dd323d90 ffffffff81835d80 [33805.323409] ffffffff8104ba9d ffff8801fd882240 ffff8801dd323de0 ffff88023f2144c0 [33805.323412] ffff88023f218a00 0000000000000000 ffffffff8104bb1c ffffffff8185a043 [33805.323415] Call Trace: [33805.323422] [<ffffffff812b9779>] ? dump_stack+0x46/0x5d [33805.323427] [<ffffffff8104ba9d>] ? warn_slowpath_common+0x7d/0xb0 [33805.323430] [<ffffffff8104bb1c>] ? warn_slowpath_fmt+0x4c/0x50 [33805.323433] [<ffffffff8141f680>] ? intel_mmio_flip_work_func+0x360/0x3a0 [33805.323436] [<ffffffff81061623>] ? process_one_work+0x153/0x470 [33805.323438] [<ffffffff81061987>] ? worker_thread+0x47/0x480 [33805.323441] [<ffffffff81061940>] ? process_one_work+0x470/0x470 [33805.323443] [<ffffffff81061940>] ? process_one_work+0x470/0x470 [33805.323446] [<ffffffff81066a9d>] ? kthread+0xbd/0xe0 [33805.323449] [<ffffffff810669e0>] ? kthread_worker_fn+0x150/0x150 [33805.323453] [<ffffffff8169baef>] ? ret_from_fork+0x3f/0x70 [33805.323455] [<ffffffff810669e0>] ? kthread_worker_fn+0x150/0x150 [33805.323457] ---[ end trace 0e8ce8e5c55335ce ]--- [33805.325351] drm/i915: Resetting chip after gpu hang [33811.310650] [drm] stuck on render ring [33811.311131] [drm] GPU HANG: ecode 7:0:0x85fffdfc, in kscreenlocker_g [14201], reason: Ring hung, action: reset [33811.313211] drm/i915: Resetting chip after gpu hang
My problems are solved by reverting the change that made IvyBridge fall back to BCS flips in intel_display.c causing it to use RCS instead again. --- intel_display.org 2016-03-10 21:26:35.257802164 +0100 +++ intel_display.c 2016-03-10 08:38:30.039530733 +0100 @@ -11498,8 +11498,8 @@ if (obj->tiling_mode != intel_fb_obj(work->old_fb)->tiling_mode) /* vlv: DISPLAY_FLIP fails to change tiling */ ring = NULL; - } else if (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) { - ring = &dev_priv->ring[BCS]; +// } else if (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) { +// ring = &dev_priv->ring[BCS]; } else if (INTEL_INFO(dev)->gen >= 7) { ring = i915_gem_request_get_ring(obj->last_write_req); if (ring == NULL || ring->id != RCS) /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz stepping : 9 microcode : 0x1b ...
A couple of days of testing 4.5 shows no sign of this bug anymore, seems fixed for me.
Closing >1 year old resolved+fixed.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.