Bug 30120

Summary: [i945] GPU Hang i686 gentoo-sources-2.6.35-r5
Product: DRI Reporter: Dillon <rezbit.hex>
Component: DRM/IntelAssignee: Dillon <rezbit.hex>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: medium CC: jbarnes
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log
none
dmesg output
none
i915 error state
none
Register dump
none
vbios dump
none
xorg conf
none
Newer debug info with drm.debug=0x06 enabled on newer kernel
none
Newer debug info with drm.debug=0x06 enabled on newer kernel
none
register dump
none
Xorg log
none
dmesg output
none
i915 error state
none
vbios dump
none
xorg conf
none
backtrace of Xorg on hang
none
Source clipping
none
backtrace of Xorg on hang with source clipping
none
Source clipping v2 none

Description Dillon 2010-09-10 11:07:08 UTC
Created attachment 38606 [details]
Xorg log

2) System environment:
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
-- system architecture: i686
-- xf86-video-intel: 2.12.0
-- xserver version: 1.8.2
-- mesa version: 7.8.2 (from portage as glxinfo triggers more X crashes)
--libdrm version: 2.4.21
-- kernel version: 2.6.34-hardened-r4
-- Linux distribution: Gentoo Linux
-- Machine or mobo model: Toshiba Satellite A105-S4094
-- Display connector: LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 289mm x 2100mm

3) Reproduce steps.
Start X,kde,kwin compositing(optional seems to speed up hang)
Start applications, esp OGL (zsnes, mupen etc)
Use X as normal, wait for hang
X restarts and disables acceleration as the GPU is hung.
Any OGL application (glxgears, glxinfo,zsnes in my case) causes X to reset with a segfault
Comment 1 Dillon 2010-09-10 11:08:15 UTC
Created attachment 38607 [details]
dmesg output
Comment 2 Dillon 2010-09-10 11:08:50 UTC
Created attachment 38608 [details]
i915 error state
Comment 3 Dillon 2010-09-10 11:09:53 UTC
Created attachment 38609 [details]
Register dump
Comment 4 Dillon 2010-09-10 11:10:17 UTC
Created attachment 38610 [details]
vbios dump
Comment 5 Dillon 2010-09-10 11:10:38 UTC
Created attachment 38611 [details]
xorg conf
Comment 6 Chris Wilson 2010-09-10 11:16:09 UTC
commit 944001201ca0196bcdb088129e5866a9f379d08c
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Jul 20 13:15:31 2010 +1000

    drm/i915: enable low power render writes on GEN3 hardware.
    
    A lot of 945GMs have had stability issues for a long time, this manifested a
    
    one such report is at:
    https://bugs.freedesktop.org/show_bug.cgi?id=20560
    
    along with numerous distro bugzillas.
    
    This only took a week of digging and hair ripping to figure out.
    
    Tracked down and tested on a 945GM Lenovo T60,
    previously running
    x11perf -copypixwin500
    or
    x11perf -copywinpix500
    repeatedly would cause the GPU to wedge within 4 or 5 tries, with random busy bits set.

   
    After this patch no hangs were observed.
    
    cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
Comment 7 Dillon 2010-09-10 18:52:48 UTC
Created attachment 38617 [details]
Newer debug info with drm.debug=0x06 enabled on newer kernel

I wasn't sure whether this was the same bug or not. Newer debug info on a 2.6.35 kernel.
Comment 8 Chris Wilson 2010-09-11 00:23:16 UTC
Looks remarkably similar. Can you grab intel_reg_dumper from http://cgit.freedesktop.org/git/xorg/apps/intel-gpu-tools and attach its output?
Comment 9 Dillon 2010-09-11 10:16:15 UTC
Created attachment 38621 [details]
Newer debug info with drm.debug=0x06 enabled on newer kernel
Comment 10 Dillon 2010-09-11 10:18:31 UTC
Comment on attachment 38621 [details]
Newer debug info with drm.debug=0x06 enabled on newer kernel

I didn't manage to get vanilla 2.6.35.3 running yet, so I used gentoo-sources-2.6.35-r5
Comment 11 Dillon 2010-09-11 10:28:24 UTC
Created attachment 38622 [details]
register dump
Comment 12 Dillon 2010-09-11 10:28:47 UTC
Created attachment 38623 [details]
Xorg log
Comment 13 Dillon 2010-09-11 10:29:11 UTC
Created attachment 38624 [details]
dmesg output
Comment 14 Dillon 2010-09-11 10:29:43 UTC
Created attachment 38625 [details]
i915 error state
Comment 15 Dillon 2010-09-11 10:30:11 UTC
Created attachment 38626 [details]
vbios dump
Comment 16 Dillon 2010-09-11 10:30:36 UTC
Created attachment 38628 [details]
xorg conf
Comment 17 Chris Wilson 2010-09-11 10:33:21 UTC
This could have something to do with it:

0x08f10100:      0x54f00006: XY_SRC_COPY_BLT (rgb enabled, alpha enabled, src ti
le 0, dst tile 0)
0x08f10104:      0x03cc0080:    format 8888, dst pitch 128, clipping disabled
0x08f10108:      0x00000000:    dst (0,0)
0x08f1010c:      0x00160016:    dst (22,22)
0x08f10110:      0x01ba9000:    dst offset 0x01ba9000
0x08f10114:      0x00080425:    src (1061,8)
0x08f10118:      0x00000040:    src pitch 64
0x08f1011c:      0x01ba8000:    src offset 0x01ba8000
Comment 18 Dillon 2010-09-11 13:58:53 UTC
Created attachment 38632 [details]
backtrace of Xorg on hang

(gdb) bt
#0  0xb7717424 in __kernel_vsyscall ()
#1  0xb7429471 in raise () from /lib/libc.so.6
#2  0xb742abb2 in abort () from /lib/libc.so.6
#3  0xb723f335 in i830_uxa_copy (dest=0xb9261e50, src_x1=1033, src_y1=8, 
    dst_x1=0, dst_y1=0, w=22, h=22) at intel_uxa.c:427
#4  0xb7254dc2 in uxa_copy_n_to_n (pSrcDrawable=0xb8b67908, 
    pDstDrawable=0xb9261e50, pGC=0x0, pbox=0xbfbbba10, nbox=1, dx=1033, dy=8, 
    reverse=0, upsidedown=0, bitplane=0, closure=0x0) at uxa-accel.c:591
#5  0xb725c7ff in uxa_composite (op=1 '\001', pSrc=0xb91a1e10, pMask=0x0, 
    pDst=0xb8f0c570, xSrc=<value optimized out>, ySrc=8, 
    xMask=<value optimized out>, yMask=<value optimized out>, xDst=0, yDst=0, 
    width=22, height=22) at uxa-render.c:1585
#6  0xb783bebd in damageComposite (op=6 '\006', pSrc=0xb91a1e10, pMask=0x0, 
    pDst=0xb8f0c570, xSrc=<value optimized out>, ySrc=<value optimized out>, 
    xMask=<value optimized out>, yMask=<value optimized out>, 
    xDst=<value optimized out>, yDst=<value optimized out>, 
    width=<value optimized out>, height=<value optimized out>) at damage.c:640
#7  0xb7832382 in CompositePicture (op=0 '\000', pSrc=0xb91a1e10, pMask=0x0, 
    pDst=0xb8f0c570, xSrc=1033, ySrc=8, xMask=<value optimized out>, 
    yMask=<value optimized out>, xDst=<value optimized out>, 
    yDst=<value optimized out>, width=22, height=22) at picture.c:1710
#8  0xb77f937d in compNewPixmap (pWin=<value optimized out>, 
    x=<value optimized out>, y=8, w=<value optimized out>, 
    h=<value optimized out>) at compalloc.c:537
---Type <return> to continue, or q <return> to quit---
#9  0xb77f996d in compAllocPixmap (pWin=0xb9067ee8) at compalloc.c:561
#10 0xb77fbe7a in compCheckRedirect (pWin=0x6) at compwindow.c:162
#11 0xb77fc098 in compRealizeWindow (pWin=0xb9067ee8) at compwindow.c:243
#12 0xb77710a2 in RealizeTree (pWin=0xb8b67908) at window.c:2533
#13 0xb77735d6 in MapWindow (pWin=0xb8b67908, client=0xb87d9628)
    at window.c:2628
#14 0xb777c3c4 in ProcMapWindow (client=0xb87d9628) at dispatch.c:809
#15 0xb777cd2f in Dispatch () at dispatch.c:432
#16 0xb775b222 in main (argc=10, argv=0xbfbbbf14, envp=0xbfbbbf40)
    at main.c:291
Comment 19 Chris Wilson 2010-09-12 04:34:20 UTC
Created attachment 38643 [details] [review]
Source clipping
Comment 20 Dillon 2010-09-12 16:17:51 UTC
Created attachment 38656 [details]
backtrace of Xorg on hang with source clipping

(In reply to comment #19)
> Created an attachment (id=38643) [details]
> Source clipping
With your patch to drm-intel.git applied
#0  0xb76e9424 in __kernel_vsyscall ()
#1  0xb73fb471 in raise () from /lib/libc.so.6
#2  0xb73fcbb2 in abort () from /lib/libc.so.6
#3  0xb7213b39 in i830_uxa_copy (dest=0x0, src_x1=1061, src_y1=9, dst_x1=0, 
    dst_y1=0, w=22, h=22) at intel_uxa.c:454
#4  0xb7228db2 in uxa_copy_n_to_n (pSrcDrawable=0xa8e68e0, 
    pDstDrawable=0xaf3c280, pGC=0x0, pbox=0xbfb920f0, nbox=1, dx=1061, dy=9, 
    reverse=0, upsidedown=0, bitplane=0, closure=0x0) at uxa-accel.c:591
#5  0xb722fcbe in uxa_composite (op=1 '\001', pSrc=0xaf62e50, pMask=0x0, 
    pDst=0xa16a088, xSrc=<value optimized out>, ySrc=9, 
    xMask=<value optimized out>, yMask=<value optimized out>, xDst=0, yDst=0, 
    width=22, height=22) at uxa-render.c:1585
#6  0x0812fa56 in damageComposite (op=6 '\006', pSrc=0xaf62e50, pMask=0x0, 
    pDst=0xa16a088, xSrc=<value optimized out>, ySrc=<value optimized out>, 
    xMask=<value optimized out>, yMask=<value optimized out>, 
    xDst=<value optimized out>, yDst=<value optimized out>, 
    width=<value optimized out>, height=<value optimized out>) at damage.c:643
#7  0x081295b2 in CompositePicture (op=0 '\000', pSrc=0xaf62e50, pMask=0x0, 
    pDst=0xa16a088, xSrc=1061, ySrc=9, xMask=<value optimized out>, 
    yMask=<value optimized out>, xDst=<value optimized out>, 
    yDst=<value optimized out>, width=22, height=22) at picture.c:1714
#8  0x080faa8b in compNewPixmap (pWin=<value optimized out>, 
    x=<value optimized out>, y=9, w=<value optimized out>, 
    h=<value optimized out>) at compalloc.c:536
---Type <return> to continue, or q <return> to quit---
#9  0x080fad5c in compAllocPixmap (pWin=0xb04c770) at compalloc.c:560
#10 0x080fd0e2 in compCheckRedirect (pWin=0xb04c770) at compwindow.c:162
#11 0x080fd203 in compRealizeWindow (pWin=0xb04c770) at compwindow.c:243
#12 0x080791e2 in RealizeTree (pWin=0xa8e68e0) at window.c:2556
#13 0x0807ce0e in MapWindow (pWin=0xa8e68e0, client=0xa1915b0) at window.c:2651
#14 0x08084545 in ProcMapWindow (client=0xa1915b0) at dispatch.c:837
#15 0x08084efd in Dispatch () at dispatch.c:439
#16 0x08065bae in main (argc=10, argv=0xbfb92604, envp=0xbfb92630)
    at main.c:286
Comment 21 Chris Wilson 2010-09-12 16:55:35 UTC
Created attachment 38657 [details] [review]
Source clipping v2
Comment 22 Chris Wilson 2010-09-12 17:09:11 UTC
commit 08c2caca48323d6d5701dcef3486f850619d7905
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 12 12:34:51 2010 +0100

    uxa: Apply source clipping to blits
    
    Yes, this should be done in the higher layers. Yes, I have written code
    to that. No, it is not ready, hence add the sanity check to the
    SRC_COPY_BLT.
    
    This isn't the first report that I've seen, but will be the last.
Comment 23 Jari Tahvanainen 2017-01-12 14:52:51 UTC
Closing resolved+fixed after >seven years of silence.

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.