evtouch driver lockups
Alexander Sabourenkov
screwdriver at lxnt.info
Mon Nov 2 07:07:25 PST 2009
Hello.
I'm seeing Xorg lock up (sleep in futex) during stress-testing touchscreens - that
consists of many touches in quick succession, where each touch makes something be
redrawn.
Backtraces are identical in upper part - the signal handler, and differ in the
lower part, that is from frame 11 onwards, but it's always something to do with
malloc/free. See the example backtrace below.
As far as I understand, one should not do any memory allocation/deallocation or,
more generally, anything that might be protected with locks, in a signal handler.
Now, my question is: how do I fix that?
Example backtrace:
#0 0x00bf4422 in __kernel_vsyscall ()
#1 0x00235ae3 in __lll_lock_wait_private () at
../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:95
#2 0x001ccf07 in _L_lock_9496 () from /lib/tls/i686/cmov/libc.so.6
#3 0x001cb796 in *__GI___libc_free (mem=0x930a548) at malloc.c:3714
#4 0x08137a21 in Xfree (ptr=0xfffffe00) at ../../os/utils.c:1165
#5 0x0813127e in TimerFree (timer=0x930a548) at ../../os/WaitFor.c:518
#6 0x0062423b in DoBtnAction (local=0x9251898) at evtouch.c:260
#7 ReadInput (local=0x9251898) at evtouch.c:845
#8 0x080c7ef7 in xf86SigioReadInput (fd=17, closure=0x9251898) at
../../../../hw/xfree86/common/xf86Events.c:311
#9 0x080b87b4 in xf86SIGIO (sig=29) at
../../../../../hw/xfree86/os-support/linux/../shared/sigio.c:114
#10 <signal handler called>
#11 _int_free (av=<value optimized out>, p=0x93f7230) at malloc.c:4831
#12 0x001cb79d in *__GI___libc_free (mem=0x93f7238) at malloc.c:3716
#13 0x08137a21 in Xfree (ptr=0x0) at ../../os/utils.c:1165
#14 0x08120cb4 in miRegionDestroy (pReg=0x93f7238) at ../../mi/miregion.c:258
#15 0x0816f126 in miDestroyPicture (pPicture=0x92fa040) at ../../render/mipict.c:50
#16 0x08171b6d in FreePicture (value=0x92fa040, pid=23101378) at
../../render/picture.c:1508
#17 0x08074e82 in FreeResource (id=23101378, skipDeleteFuncType=0) at
../../dix/resource.c:561
#18 0x08179722 in ProcRenderFreePicture (client=0x92978e0) at
../../render/render.c:684
#19 0x081742e5 in ProcRenderDispatch (client=0x29d3a0) at ../../render/render.c:2089
#20 0x0808d17f in Dispatch () at ../../dix/dispatch.c:456
#21 0x08072515 in main (argc=5, argv=0xbfed81a4, envp=0xbfed81bc) at
../../dix/main.c:397
More information about the xorg-devel
mailing list