Summary: | [gm45] False GPU lockup render.IPEHR: 0x01820000 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Bryce Harrington <bryce> | ||||||||||
Component: | DRM/Intel | Assignee: | Daniel Vetter <daniel> | ||||||||||
Status: | CLOSED FIXED | QA Contact: | |||||||||||
Severity: | major | ||||||||||||
Priority: | high | CC: | ben, chris, daniel, jbarnes | ||||||||||
Version: | unspecified | ||||||||||||
Hardware: | x86-64 (AMD64) | ||||||||||||
OS: | Linux (All) | ||||||||||||
Whiteboard: | |||||||||||||
i915 platform: | i915 features: | ||||||||||||
Attachments: |
|
Description
Bryce Harrington
2012-04-17 11:48:26 UTC
Created attachment 60206 [details]
BootDmesg.txt
Created attachment 60207 [details]
CurrentDmesg.txt
Created attachment 60208 [details]
i915_error_state.txt
Created attachment 60209 [details]
XorgLog.txt
commit 14667a4bde4361b7ac420d68a2e9e9b9b2df5231 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Apr 3 17:58:35 2012 +0100 drm/i915: Finish any pending operations on the framebuffer before disabling Similar to the case where we are changing from one framebuffer to another, we need to be sure that there are no pending WAIT_FOR_EVENTs on the pipe for the current framebuffer before switching. If we disable the pipe, and then try to execute a WAIT_FOR_EVENT it will block indefinitely and cause a GPU hang. And a few patches to the DDX to shrink the race. Which DDX patches? In this particular case, just the kernel patch should be sufficient. In the general case, the ddx needs: commit b817200371bfe16f44b879a793cf4a75ad17bc5c Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Apr 17 17:54:58 2012 +0100 Don't issue a scanline wait while VT switched and commit cc20c45aa0ca15720510668d6918bf3c99104626 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Mar 30 22:51:21 2012 +0100 sna: Minimise the risk of hotplug hangs by checking fb before vsync (which is just papering over the bugs). Thanks; we don't ship/support sna but will look into the other ddx patch. And the last patch landed in drm-intel-next-queued: commit 0f91128d88bbb8b0a8e7bb93df2c40680871d45a Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Apr 17 10:05:38 2012 +0100 drm/i915: Wait for all pending operations to the fb before disabling the pip During modeset we have to disable the pipe to reconfigure its timings and maybe its size. Userspace may have queued up command buffers that depend upon the pipe running in a certain configuration and so the commands may become confused across the modeset. At the moment, we use a less than satisfactory kick-scanline-waits should the GPU hang during the modeset. It should be more reliable to wait for the pending operations to complete first, even though we still have a window for userspace to submit a broken command buffer during the modeset. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
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.