X locks when deactivating composite effects

Michel Dänzer michel at tungstengraphics.com
Tue Nov 11 03:36:58 PST 2008


On Mon, 2008-11-10 at 06:35 -0800, john terragon wrote:
> Hi,
> 
> whenever I deactivate the composite effects the x server locks up and I get the following in the Xorg log file:
> 
> ------------------------------------------------------------------
> Backtrace:
> 0: /usr/bin/X(xf86SigHandler+0x79) [0x80c1659]
> 1: [0xa7fc7400]
> 2: /usr/lib/xorg/modules/extensions//libdri.so(DRIGetDrawableInfo+0x2e) [0xa7fb911e]
> 3: /usr/lib/xorg/modules/extensions//libglx.so [0xa7b24c6e]
> 4: /usr/lib/dri/radeon_dri.so(__driUtilUpdateDrawableInfo+0xc1) [0xa2d28011]
> 5: /usr/lib/dri/radeon_dri.so(radeonGetLock+0x75) [0xa2d2fe05]
> 6: /usr/lib/dri/radeon_dri.so(radeonFlushCmdBuf+0x90) [0xa2d2d910]
> 7: /usr/lib/dri/radeon_dri.so(radeonDestroyContext+0xbd) [0xa2d2c0cd]
> 8: /usr/lib/dri/radeon_dri.so [0xa2d27ec7]
> 9: /usr/lib/xorg/modules/extensions//libglx.so [0xa7b26849]
> 10: /usr/lib/xorg/modules/extensions//libglx.so(__glXFreeContext+0x89) [0xa7b1bae9]
> 11: /usr/lib/xorg/modules/extensions//libglx.so [0xa7b1bb37]
> 12: /usr/bin/X(FreeResourceByType+0xe2) [0x80732f2]
> 13: /usr/lib/xorg/modules/extensions//libglx.so [0xa7b17e07]
> 14: /usr/lib/xorg/modules/extensions//libglx.so [0xa7b1be9a]
> 15: /usr/bin/X(Dispatch+0x34f) [0x808b74f]
> 16: /usr/bin/X(main+0x47d) [0x80713ed]
> 17: /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xa7bf7455]
> 18: /usr/bin/X(FontFileCompleteXLFD+0x20d) [0x80707d1]
> 
> Fatal server error:
> Caught signal 11.  Server aborting
> 
> (II) UnloadModule: "kbd"
> (II) UnloadModule: "mouse"
> (II) AIGLX: Suspending AIGLX clients for VT switch
> (EE) RADEON(0): RADEONWaitForIdleCP: CP idle -22
> (EE) RADEON(0): Idle timed out, resetting engine...
> (EE) RADEON(0): RADEONWaitForIdleCP: CP reset -22
> (EE) RADEON(0): RADEONWaitForIdleCP: CP start -22
> (EE) RADEON(0): RADEONWaitForIdleCP: CP idle -22
> 
> -------------------------------------------------------------
> 
> And the RADEONWaitForIdleCP things are repeated continously.
> 
> Some info about the system
> Card: radeon mobility M7 
> Xserver: 1.5.2
> Distro: Debian
> linux kernel: 2.6.27.5 (but it was the same with 2.6.26)
> radeon driver: 6.9.0+git20081012
> 
> Has anyone ever seen anything like this?

Yes, looks like https://bugzilla.redhat.com/show_bug.cgi?id=445331
(http://bugs.freedesktop.org/show_bug.cgi?id=7128 is probably related,
http://bugs.freedesktop.org/show_bug.cgi?id=18465 possibly).

Basically, the problem is that the (AI)GLX code keeps pointers to
DrawableRec structs of X windows corresponding to GLX windows without
preventing/tracking the destruction of the X windows. So it can happen
that the (AI)GLX code dereferences these pointers after the X window is
already destroyed.

It might be possible for the client (is that kwin for you as well?) to
avoid this problem by making sure that the GLX context is unbound and
destroyed before the X window is destroyed, not sure about that though.


-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer




More information about the xorg mailing list