Hi Alex,

On Wed, Sep 30, 2009 at 5:29 PM, Alex Deucher <alexdeuc...@gmail.com> wrote:
> On Wed, Sep 30, 2009 at 10:20 AM, Daniel J Blueman
> <daniel.blue...@gmail.com> wrote:
>> When running 2.6.32-rc1 with modesetting on a HD3470/R600 GPU [1] with
>> updated userland [2], I experience a GPU lockup 2-3 seconds after
>> starting glxgears under compiz. We also see intermittent rendering
>> buffer corruption [3] when glxgears is started, and sometimes
>> corruption with text compositing in eg gnome-terminal.
>>
>> When the GPU lockup occurs, we observe Xorg is waiting for the GPU
>> operation to complete [4]; DRM debug reflects this [5]. Xorg.log
>> [attached] isn't telling.
>>
>> The problem isn't reproducible booting with 'nomodeset', so sounds
>> like the radeon KMS init path doesn't correctly/consistently
>> initialise some registers. What tools would be useful to dump the
>> state, perhaps so I can perform a like for like comparison?
>
> There may be some buffer accounting issues with draw prims under kms.
> Does disabling draw prims fix the issue?  To disable the draw prims
> interface, revert this patch:
> http://cgit.freedesktop.org/mesa/mesa/commit/?id=eea30906de37ea3b2f8a594c2b33b643d3dde987

Removing the registration of the drawing primitives via reverting that
patch against mesa-7.7.0~git20090928.d492e7b0, didn't prevent the
crash (or corruption) alas.

For more data, I've seen a related but slightly different Xorg spin
backtrace [1] when firefox was rending (non-flash). Other datapoints
include that I don't experience the GPU hang at all booting with
'nomodeset', however I do still see the visual corruption in the
terminal, clearly unrelated.

What's next?

Thanks,
  Daniel

--- [1]

(gdb) where
#0  0x00007fd37b9a0537 in ioctl () from /lib/libc.so.6
#1  0x00007fd37a5883a3 in drmIoctl (fd=7, request=3221775460,
arg=0x7fff90298110) at ../../libdrm/xf86drm.c:188
#2  0x00007fd37a5885ec in drmCommandWriteRead (fd=7,
drmCommandIndex=<value optimised out>, data=0x7fff90298110,
    size=<value optimised out>) at ../../libdrm/xf86drm.c:2431
#3  0x00007fd379c78069 in bo_wait (bo=0xfd0480) at
../../../libdrm/radeon/radeon_bo_gem.c:206
#4  0x00007fd379c78145 in bo_map (bo=0xfd0480, write=-1073191836) at
../../../libdrm/radeon/radeon_bo_gem.c:181
#5  0x00007fd379f3a636 in _radeon_bo_map (pScrn=<value optimised out>)
at /usr/include/drm/radeon_bo.h:151
#6  r600_vb_get (pScrn=<value optimised out>) at ../../src/r6xx_accel.c:1193
#7  0x00007fd379f3a6a3 in r600_cp_start (pScrn=0x7) at
../../src/r6xx_accel.c:1227
#8  0x00007fd379f39159 in R600PrepareComposite (op=<value optimised
out>, pSrcPicture=<value optimised out>,
    pMaskPicture=<value optimised out>, pDstPicture=<value optimised
out>, pSrc=0x1276200, pMask=0x126f8f0, pDst=0x12bffe0)
    at ../../src/r600_exa.c:1660
#9  0x00007fd37984fd2b in exaTryDriverComposite (op=<value optimised
out>, pSrc=0x1276ca0, pMask=0x12c2d40, pDst=0x126fa70,
    xSrc=<value optimised out>, ySrc=<value optimised out>,
xMask=<value optimised out>, yMask=<value optimised out>,
    xDst=<value optimised out>, yDst=<value optimised out>,
width=<value optimised out>, height=<value optimised out>)
    at ../../exa/exa_render.c:670
#10 0x00007fd379850b1f in exaComposite (op=<value optimised out>,
pSrc=0x1276ca0, pMask=0x12c2d40, pDst=0x126fa70,
    xSrc=<value optimised out>, ySrc=<value optimised out>, xMask=0,
yMask=0, xDst=-8, yDst=4, width=10, height=11)
    at ../../exa/exa_render.c:935
#11 0x00007fd379850c03 in exaTryMagicTwoPassCompositeHelper (op=<value
optimised out>, pSrc=0x1276ca0, pMask=0x12c2d40,
    pDst=0x126fa70, xSrc=<value optimised out>, ySrc=<value optimised
out>, xMask=0, yMask=0, xDst=-8, yDst=4, width=10,
    height=11) at ../../exa/exa_render.c:785
#12 exaComposite (op=<value optimised out>, pSrc=0x1276ca0,
pMask=0x12c2d40, pDst=0x126fa70, xSrc=<value optimised out>,
    ySrc=<value optimised out>, xMask=0, yMask=0, xDst=-8, yDst=4,
width=10, height=11) at ../../exa/exa_render.c:953
#13 0x0000000000537d50 in damageComposite (op=7 '\a', pSrc=<value
optimised out>, pMask=<value optimised out>,
    pDst=0x126fa70, xSrc=-31808, ySrc=-32096, xMask=<value optimised
out>, yMask=<value optimised out>, xDst=-8, yDst=4,
    width=10, height=<value optimised out>) at
../../../miext/damage/damage.c:643
#14 0x00007fd37984d4e5 in exaGlyphs (op=7 '\a', pSrc=<value optimised
out>, pDst=<value optimised out>,
    maskFormat=<value optimised out>, xSrc=<value optimised out>,
ySrc=<value optimised out>, nlist=1, list=0x7fff90299e90,
    glyphs=0x7fff902996a0) at ../../exa/exa_glyphs.c:890
#15 0x0000000000538064 in damageGlyphs (op=7 '\a', pSrc=<value
optimised out>, pDst=0x126fa70,
    maskFormat=<value optimised out>, xSrc=<value optimised out>,
ySrc=<value optimised out>, nlist=1, list=0x7fff90299e90,
    glyphs=0x7fff90299690) at ../../../miext/damage/damage.c:721
#16 0x0000000000531392 in ProcRenderCompositeGlyphs (client=0x1242a10)
at ../../render/render.c:1459
#17 0x000000000044dff4 in Dispatch () at ../../dix/dispatch.c:437
#18 0x0000000000433fa5 in main (argc=<value optimised out>,
argv=0x7fff9029a4b8, envp=<value optimised out>)
    at ../../dix/main.c:397
correctly unredirected).
-- 
Daniel J Blueman

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to