[Openchrome-users] Bug openchrome driver / EXA

Gregoire Gentil gregoire
Wed Nov 1 05:42:17 PST 2006


Hello,


We have the following bug reported below. The image is built with
xorg-server-1.1.1-r1 (all exa patches), mesa-6.5.1-r2, drm-20060608 and
latest version of openchrome, kernel 2.6.17-ck1. Changing the version of
the different packages doesn't help. The problem only occurs when EXA is
enabled.

Has anyone an idea of the problem or a solution to continue
investigating the problem? Many thanks by advance,

Gregoire




1. Run glxgears.

2. Switch to console (Ctrl+Alt+F1, this occurs regardless of
framebuffer).

3. Switch back to X... you get either a junk or a junk/image mixture, a
few seconds later junk disappears and you get a "correct" X image but a
few seconds more the hardware just locks up totally.

4. Get hang / hardware lockup.

5. Only happens if exa acceleration is enabled in xorg.conf.


Running a backtrace on the X process while it's stuck:

Program received signal SIGINT, Interrupt.
0xb7e1ffb6 in viaAccelSync (pScrn=0x300b5) at via_accel.c:376
376         while ((VIAGETREG(VIA_REG_STATUS) &
(gdb) bt
#0  0xb7e1ffb6 in viaAccelSync (pScrn=0x300b5) at via_accel.c:376 #1
0xb7e21830 in viaAccelWaitMarker (pScreen=0x300b5, marker=2692) at
via_accel.c:1171 #2  0xb7db5371 in exaWaitSync (pScreen=0xb7dfd000) at
exa.c:718 #3  0xb7db53cb in exaPrepareAccess (pDrawable=0x81cbcf8,
index=0) at exa.c:312 #4  0xb7db64d0 in exaCopyNtoN
(pSrcDrawable=0xb4ef1008, pDstDrawable=0x81cbcf8, pGC=0x0,
pbox=0xbf9462b8, nbox=1, dx=0, dy=0, reverse=0, upsidedown=0,
    bitplane=0, closure=0x0) at exa_accel.c:438
#5  0xb7db8e39 in exaComposite (op=1 '\001', pSrc=0x820be98, pMask=0x0,
pDst=0x826fac0, xSrc=0, ySrc=0, xMask=0, yMask=0, xDst=0, yDst=0,
width=1280,
    height=1024) at exa_render.c:590
#6  0x08121e09 in damageComposite (op=1 '\001', pSrc=0x820be98,
pMask=0x0, pDst=0x826fac0, xSrc=0, ySrc=0, xMask=0, yMask=0, xDst=0,
yDst=0, width=1280,
    height=1024) at damage.c:541
#7  0x081171cb in CompositePicture (op=181 '?', pSrc=0x820be98,
pMask=0x0, pDst=0x826fac0, xSrc=0, ySrc=0, xMask=0, yMask=0, xDst=0,
yDst=0, width=1280,
    height=1024) at picture.c:1789
#8  0x08118555 in ProcRenderComposite (client=0x8248c40) at render.c:752
#9  0x0811a4af in ProcRenderDispatch (client=0xb7dfd000) at
render.c:1992 #10 0x0808068b in Dispatch () at dispatch.c:459 #11
0x0806d463 in main (argc=2, argv=0xbf946924, envp=0xbf946930) at
main.c:447

If I continue and let it run some more I get an image on the screen
eventually (although no glxgears visible) but X hangs and the hardware
totally locks a few seconds after; another backtrace follows. Either
way, both times it is spending a lot of time in the VIAGETREG loop. If I
remove the loop code X restores and works for a few seconds (with the
exception of the glxgears) but then the hardware locks up totally as
well regardless.

Program received signal SIGINT, Interrupt.
0xb7e1f8f6 in viaFlushPCI (buf=0x81b6c7c) at via_accel.c:111
111                         while (!(VIAGETREG(VIA_REG_STATUS) &
VIA_VR_QUEUE_BUSY)
(gdb) bt
#0  0xb7e1f8f6 in viaFlushPCI (buf=0x81b6c7c) at via_accel.c:111 #1
0xb7e1fad4 in viaFlushDRIEnabled (cb=0x81b6c7c) at via_accel.c:174 #2
0xb7e21beb in viaExaCopy (pDstPixmap=0x8199ec0, srcX=14, srcY=65717,
dstX=65717, dstY=65717, width=26, height=40) at via_accel.c:1288 #3
0xb7db64a0 in exaCopyNtoN (pSrcDrawable=0x820bef0,
pDstDrawable=0x81cbcf8, pGC=0x82061d0, pbox=0xbf94615c, nbox=0, dx=14,
dy=-570, reverse=0,
    upsidedown=0, bitplane=0, closure=0x0) at exa_accel.c:420 #4
0xb7dd47f1 in fbCopyRegion (pSrcDrawable=0x820bef0,
pDstDrawable=0x81cbcf8, pGC=0x82061d0, pDstRegion=0x100b5, dx=14,
dy=-570,
    copyProc=0xb7db5fb0 <exaCopyNtoN>, bitPlane=0, closure=0x0) at
fbcopy.c:394 #5  0xb7dd4ade in fbDoCopy (pSrcDrawable=0x820bef0,
pDstDrawable=0x81cbcf8, pGC=0x82061d0, xIn=0, yIn=0, widthSrc=40,
heightSrc=40, xOut=-14, yOut=570,
    copyProc=0xb7db5fb0 <exaCopyNtoN>, bitPlane=0, closure=0x0) at
fbcopy.c:594 #6  0xb7db6594 in exaCopyArea (pSrcDrawable=0x820bef0,
pDstDrawable=0x81cbcf8, pGC=0x82061d0, srcx=0, srcy=0, width=40,
height=40, dstx=-14, dsty=570)
    at exa_accel.c:458
#7  0x08122737 in damageCopyArea (pSrc=0x820bef0, pDst=0x81cbcf8,
pGC=0x82061d0, srcx=0, srcy=0, width=40, height=40, dstx=-14,
dsty=570) at damage.c:790
#8  0x080e59b4 in miDCRestoreUnderCursor (pScreen=0xf000000b, x=-14,
y=570, w=40, h=40) at midispcur.c:566 #9  0x080f2d90 in
miSpriteRemoveCursor (pScreen=0x81b9e18) at misprite.c:758 #10
0x081217f7 in damageDamageRegion (pDrawable=0x81cbcf8,
pRegion=0xbf946314, clip=1, subWindowMode=137317184) at damage.c:280 #11
0x0812190d in damageDamageBox (pDrawable=0xf000000b, pBox=0xb7dfd000,
subWindowMode=1) at damage.c:323 #12 0x08121dd6 in damageComposite (op=1
'\001', pSrc=0x820be98, pMask=0x0, pDst=0x826fac0, xSrc=0, ySrc=0,
xMask=0, yMask=0, xDst=0, yDst=0, width=1280,
    height=1024) at damage.c:538
#13 0x081171cb in CompositePicture (op=181 '?', pSrc=0x820be98,
pMask=0x0, pDst=0x826fac0, xSrc=0, ySrc=0, xMask=0, yMask=0, xDst=0,
yDst=0, width=1280,
    height=1024) at picture.c:1789
#14 0x08118555 in ProcRenderComposite (client=0x8248c40) at render.c:752
#15 0x0811a4af in ProcRenderDispatch (client=0xf000000b) at
render.c:1992 #16 0x0808068b in Dispatch () at dispatch.c:459 #17
0x0806d463 in main (argc=2, argv=0xbf946924, envp=0xbf946930) at
main.c:447






More information about the Openchrome-users mailing list