Bug 35910 - GPU hangs on 2.6.38, triggered by mplayer
Summary: GPU hangs on 2.6.38, triggered by mplayer
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Chris Wilson
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-02 10:13 UTC by Josh Triplett
Modified: 2017-07-24 23:05 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
/sys/kernel/debug/dri/0/i915_error_state (113.41 KB, application/x-gzip)
2011-04-06 23:02 UTC, Josh Triplett
no flags Details

Description Josh Triplett 2011-04-02 10:13:14 UTC
Since upgrading to 2.6.38, I've frequently encountered GPU hangs when starting mplayer.  Kernel messages:

[80251.212053] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
[80251.215644] [drm:i915_do_wait_request] *ERROR* i915_do_wait_request returns -11 (awaiting 5936650 at 5936649, next 5936652)
[80251.716071] [drm:i915_reset] *ERROR* Failed to reset chip.

Snippet from Xorg.0.log:

[ 80251.718] (EE) intel(0): failed to set cursor: Input/output error
[ 80251.719] (EE) intel(0): Detected a hung GPU, disabling acceleration.
[ 80251.732] (EE) intel(0): failed to set cursor: Input/output error
[ 80251.741] (EE) intel(0): failed to set cursor: Input/output error
[ 80251.741] (EE) intel(0): failed to set cursor: Input/output error
[ 80251.755] (WW) intel(0): intel_uxa_prepare_access: bo map failed: Input/output error
[ 80251.755] (WW) intel(0): intel_uxa_prepare_access: bo map failed: Input/output error
[ 80251.760] (WW) intel(0): intel_uxa_prepare_access: bo map failed: Input/output error
[ 80251.770] (EE) intel(0): failed to set cursor: Input/output error
[...]

When this happens, video will no longer play, and colors on the display slowly start getting corrupted; for instance, tabs in gnome-terminal will turn purple or orange, or particular terminal text colors will become other colors.

Happy to try to gather more information, though since I don't have a reliable way to reproduce this I can't bisect it.
Comment 1 Josh Triplett 2011-04-02 10:14:01 UTC
Intel(R) GM45 chipset, Lenovo X200.
Comment 2 Chris Wilson 2011-04-02 23:19:32 UTC
Can you please attach the contents of /sys/kernel/debug/dri/0/i915_error_state after a hang? http://intellinuxgraphics.org/how_to_report_bug.html
Comment 3 Josh Triplett 2011-04-03 22:22:31 UTC
(In reply to comment #2)
> Can you please attach the contents of /sys/kernel/debug/dri/0/i915_error_state
> after a hang? http://intellinuxgraphics.org/how_to_report_bug.html

Will do when I encounter another hang.
Comment 4 Josh Triplett 2011-04-06 23:02:47 UTC
Created attachment 45364 [details]
/sys/kernel/debug/dri/0/i915_error_state

GPU hang occurred again.  i915_error_state attached.
Comment 5 Chris Wilson 2011-04-06 23:15:43 UTC
0x0d900028:      0x61010004: STATE_BASE_ADDRESS
0x0d90002c:      0x00000001:    general state base address 0x00000000
0x0d900030:      0x0dad9001:    surface state base address 0x0dad9000
0x0d900034:      0x00000001:    indirect state base address 0x00000000
0x0d900038:      0x10000001:    general state upper bound 0x10000000
0x0d90003c:      0x10000001:    indirect state upper bound 0x10000000

Should be fixed by:

commit 23f9b14df7c102c1036134835dd5d1a508059858
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Feb 12 10:42:34 2011 +0000

    i965: Remove broken maximum base addresses from video
    
    WRONG.
    
    The hardware was never limited to 0x1000000 and the kernel can quite
    rightly place objects above that limit. Specifying such had no relation
    to reality, so why did we do it? TWICE!
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34017
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>


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.