If I turn off compiz and open that URL in firefox xorg still locks up but
instead of being stuck permanently blocking in drmIoctl() it goes into a CPU
spin.
At this time the backtrace is essentially:
#1 0xb7d35ea9 in ioctl () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7b30a6d in drmDMA () from /usr/lib/libdrm.so.2
#3 0xb7aa1948 in RADEONCPGetBuffer (pScrn=0x9e575c8) at
../../src/radeon_accel.c:651
#4 0xb7af60fb in RADEONPrepareSolidCP (pPix=0xa508620, alu=3, pm=4294967295,
fg=0) at ../../src/radeon_exa_funcs.c:92
#5 0xb78ce96a in exaFillRegionSolid (pDrawable=0xa508620, pRegion=0xa4fef40,
pixel=0, planemask=4294967295, alu=<value optimized out>)
at ../../exa/exa_accel.c:939
#6 0xb78d0312 in exaPolyFillRect (pDrawable=0xa508620, pGC=0xa0ba0f8, nrect=1,
prect=0xa4865cc) at ../../exa/exa_accel.c:751
#7 0x08180b94 in damagePolyFillRect (pDrawable=0xa508620, pGC=0xa0ba0f8,
nRects=1, pRects=0xa4865cc) at ../../../miext/damage/damage.c:1404
#8 0x0808a4f0 in ProcPolyFillRectangle (client=0xa4e4008) at
../../dix/dispatch.c:1769
#9 0x0808d57f in Dispatch () at ../../dix/dispatch.c:437
If I put breakpoints on the three top most stack frames I see ioctl() and
drmDMA() being hit constantly but the breakpoint on RADEONCPGetBuffer() is
never hit so I don't think that function ever exits.
Breakpoint 1, 0xb7d35e90 in ioctl () from /lib/tls/i686/cmov/libc.so.6
Continuing.
Breakpoint 2, 0xb7b309f5 in drmDMA () from /usr/lib/libdrm.so.2
Continuing.
Breakpoint 1, 0xb7d35e90 in ioctl () from /lib/tls/i686/cmov/libc.so.6
Continuing.
Breakpoint 2, 0xb7b309f5 in drmDMA () from /usr/lib/libdrm.so.2
Continuing.
If I turn off compiz and open that URL in firefox xorg still locks up but
instead of being stuck permanently blocking in drmIoctl() it goes into a CPU
spin.
At this time the backtrace is essentially:
#1 0xb7d35ea9 in ioctl () from /lib/tls/ i686/cmov/ libc.so. 6 libdrm. so.2 radeon_ accel.c: 651 lidCP (pPix=0xa508620, alu=3, pm=4294967295, radeon_ exa_funcs. c:92 0xa508620, pRegion=0xa4fef40, 4294967295, alu=<value optimized out>) exa_accel. c:939 0xa508620, pGC=0xa0ba0f8, nrect=1, exa_accel. c:751 0xa508620, pGC=0xa0ba0f8, ./miext/ damage/ damage. c:1404 tangle (client=0xa4e4008) at dispatch. c:1769 dispatch. c:437
#2 0xb7b30a6d in drmDMA () from /usr/lib/
#3 0xb7aa1948 in RADEONCPGetBuffer (pScrn=0x9e575c8) at
../../src/
#4 0xb7af60fb in RADEONPrepareSo
fg=0) at ../../src/
#5 0xb78ce96a in exaFillRegionSolid (pDrawable=
pixel=0, planemask=
at ../../exa/
#6 0xb78d0312 in exaPolyFillRect (pDrawable=
prect=0xa4865cc) at ../../exa/
#7 0x08180b94 in damagePolyFillRect (pDrawable=
nRects=1, pRects=0xa4865cc) at ../../.
#8 0x0808a4f0 in ProcPolyFillRec
../../dix/
#9 0x0808d57f in Dispatch () at ../../dix/
If I put breakpoints on the three top most stack frames I see ioctl() and
drmDMA() being hit constantly but the breakpoint on RADEONCPGetBuffer() is
never hit so I don't think that function ever exits.
Breakpoint 1, 0xb7d35e90 in ioctl () from /lib/tls/ i686/cmov/ libc.so. 6 libdrm. so.2 i686/cmov/ libc.so. 6 libdrm. so.2
Continuing.
Breakpoint 2, 0xb7b309f5 in drmDMA () from /usr/lib/
Continuing.
Breakpoint 1, 0xb7d35e90 in ioctl () from /lib/tls/
Continuing.
Breakpoint 2, 0xb7b309f5 in drmDMA () from /usr/lib/
Continuing.
etc etc
I'm attaching a full gdb showing this trace.