Help with debuging Xserver / Goes in an infinite loop
Rodd Clarkson
rodd at clarkson.id.au
Tue Oct 13 10:13:44 UTC 2009
On Mon, 2009-10-05 at 23:05 +0200, Joshua C. wrote:
> 2009/10/5 Adam Jackson <ajax at redhat.com>:
> > On Mon, 2009-10-05 at 19:19 +0200, Joshua C. wrote:
> >
> >> (gdb) bt
> >> #0 0x0000003cc3cd70b3 in __select_nocancel () from /lib64/libc.so.6
> >> #1 0x00000000004e615a in WaitForSomething (
> >> pClientsReady=<value optimized out>) at WaitFor.c:228
> >> #2 0x0000000000446ef2 in Dispatch () at dispatch.c:386
> >> #3 0x000000000042d205 in main (argc=<value optimized out>,
> >> argv=0x7fffa2ac9218, envp=<value optimized out>) at main.c:397
> >
> > Okay, this isn't the server actually taking 100% of the CPU (almost
> > certainly), it's before that. If you type 'cont' to resume, and then ^C
> > the gdb process once the CPU goes wild, you should break back to the gdb
> > prompt; _that_'s the backtrace I need.
> >
> > Of course, you might not, in which case debugging this gets a bit
> > harder.
> >
> > - ajax
> >
> > --
> > fedora-devel-list mailing list
> > fedora-devel-list at redhat.com
> > https://www.redhat.com/mailman/listinfo/fedora-devel-list
> >
>
> (gdb) handle SIGUSR1 nostop
> Signal Stop Print Pass to program Description
> SIGUSR1 No Yes Yes User defined signal 1
> (gdb) handle SIGUSR2 nostop
> Signal Stop Print Pass to program Description
> SIGUSR2 No Yes Yes User defined signal 2
> (gdb) handle SIGPIPE nostop
> Signal Stop Print Pass to program Description
> SIGPIPE No Yes Yes Broken pipe
> (gdb) cont
> Continuing.
> ^C
> Program received signal SIGINT, Interrupt.
> 0x0000003cc3cd6827 in ioctl () from /lib64/libc.so.6
> (gdb) bt
> #0 0x0000003cc3cd6827 in ioctl () from /lib64/libc.so.6
> #1 0x0000003cd6003113 in drmIoctl (fd=8, request=3221775460,
> arg=0x7fff78cabbc0) at xf86drm.c:187
> #2 0x0000003cd600335c in drmCommandWriteRead (fd=8,
> drmCommandIndex=<value optimized out>, data=0x7fff78cabbc0,
> size=<value optimized out>)
> at xf86drm.c:2363
> #3 0x00007f6c6a6b3f08 in radeon_bufmgr_gem_wait_rendering (buf=<value
> optimized out>) at radeon_bufmgr_gem.c:282
> #4 0x00007f6c6a69a51a in RADEONPrepareAccess (pPix=0x243c2d0,
> index=0) at radeon_exa.c:279
> #5 0x00007f6c69be43b4 in ExaDoPrepareAccess (pDrawable=0x243c2d0,
> index=0) at exa.c:523
> #6 0x00007f6c69be44b8 in exaPrepareAccessReg (pDrawable=0x243c2d0,
> index=0, pReg=0x0) at exa.c:543
> #7 0x00007f6c69beceac in ExaCheckComposite (op=<value optimized out>,
> pSrc=0x24430a0, pMask=0x2397610, pDst=0x27a04b0, xSrc=<value optimized
> out>,
> ySrc=<value optimized out>, xMask=0, yMask=0, xDst=19, yDst=85,
> width=55, height=18) at exa_unaccel.c:342
> #8 0x00007f6c69beb564 in exaComposite (op=<value optimized out>,
> pSrc=0x24430a0, pMask=0x2397610, pDst=0x27a04b0, xSrc=<value optimized
> out>,
> ySrc=<value optimized out>, xMask=0, yMask=0, xDst=19, yDst=85,
> width=55, height=18) at exa_render.c:967
> #9 0x000000000052eb90 in damageComposite (op=8 '\b', pSrc=<value
> optimized out>, pMask=<value optimized out>, pDst=0x27a04b0, xSrc=1,
> ySrc=0,
> xMask=<value optimized out>, yMask=<value optimized out>, xDst=19,
> yDst=85, width=55, height=<value optimized out>) at damage.c:643
> #10 0x000000000052720c in ProcRenderComposite (client=0x2625310) at render.c:720
> #11 0x00000000004471d4 in Dispatch () at dispatch.c:456
> #12 0x000000000042d205 in main (argc=<value optimized out>,
> argv=0x7fff78cac198, envp=<value optimized out>) at main.c:397
>
Hmmm, I wonder if you're not having the same issues (or similar) to me.
See: https://bugzilla.redhat.com/show_bug.cgi?id=528593
If I run gdb I get the following:
#0 0x00000032c16d9717 in ioctl () at ../sysdeps/unix/syscall-template.S:82
#1 0x00000032dec03203 in drmIoctl (fd=9, request=3221775460,
arg=0x7fff192a1ab0) at xf86drm.c:188
#2 0x00000032dec0344c in drmCommandWriteRead (fd=<value optimized out>,
drmCommandIndex=<value optimized out>, data=<value optimized out>,
size=<value optimized out>) at xf86drm.c:2394
#3 0x00007f7cc9f81f59 in bo_wait (bo=0x1cdc780) at radeon_bo_gem.c:206
#4 0x00007f7cc9f82035 in bo_map (bo=0x1cdc780, write=<value optimized out>)
at radeon_bo_gem.c:181
#5 0x00007f7cca24f36d in _radeon_bo_map (line=2320,
func=<value optimized out>, file=0x1 <Address 0x1 out of bounds>, write=0,
bo=<value optimized out>) at /usr/include/drm/radeon_bo.h:151
#6 R600DownloadFromScreenCS (line=2320, func=<value optimized out>,
file=0x1 <Address 0x1 out of bounds>, write=0, bo=<value optimized out>)
at r600_exa.c:2320
#7 0x00007f7cc9545100 in exaGetImage (pDrawable=0x1b37dc0, x=1536, y=704,
w=256, h=64, format=<value optimized out>,
planeMask=<value optimized out>, d=<value optimized out>)
at exa_accel.c:1283
#8 0x0000000000552a94 in miSpriteGetImage (pDrawable=0x1b37dc0, sx=1536,
sy=704, w=256, h=64, format=<value optimized out>,
planemask=<value optimized out>, pdstLine=<value optimized out>)
at misprite.c:425
#9 0x000000000042dec0 in DoGetImage (planemask=<value optimized out>,
height=<value optimized out>, width=<value optimized out>,
y=<value optimized out>, x=<value optimized out>,
drawable=<value optimized out>, format=<value optimized out>,
client=0x1d2f5f0, im_return=<value optimized out>) at dispatch.c:2244
#10 ProcGetImage (planemask=<value optimized out>,
height=<value optimized out>, width=<value optimized out>,
y=<value optimized out>, x=<value optimized out>,
drawable=<value optimized out>, format=<value optimized out>,
client=0x1d2f5f0, im_return=<value optimized out>) at dispatch.c:2331
#11 0x000000000042c60c in Dispatch () at dispatch.c:445
#12 0x0000000000421c9a in main (argc=<value optimized out>,
argv=<value optimized out>, envp=<value optimized out>) at main.c:285
Rodd
More information about the fedora-devel-list
mailing list