linux 3d applications keep crashing
Chagin Dmitry
dchagin at freebsd.org
Sat Mar 14 02:24:13 PDT 2009
On Sat, Mar 14, 2009 at 12:03:25AM +0100, Alexander Best wrote:
> hi there,
>
> a lot of people who are using the nvidia closed source driver are having
> problems running linux 3d applications. the libGL.so.1 library (linux version
> in /compat/linux/usr/lib) causes almost every linux 3d app to segfault. since
> the library is the very same one that get's installed under linux the problem
> very likely resides in the linuxulator.
>
> i ran two linux games with ktrace. this is the output from linux_kdump. i hope
> i copy&pasted the important pieces of the dump that report the crash.
>
> dump from unreal tournament 2004 demo:
>
> ...
> 1180 ut2004-bin RET close 0
> 1180 ut2004-bin CALL linux_brk(0xae5c000)
> 1180 ut2004-bin RET linux_brk 182829056/0xae5c000
> 1180 ut2004-bin CALL linux_getpid
> 1180 ut2004-bin RET linux_getpid 1180/0x49c
> 1180 ut2004-bin CALL linux_getpid
> 1180 ut2004-bin RET linux_getpid 1180/0x49c
> 1180 ut2004-bin CALL linux_getpid
> 1180 ut2004-bin RET linux_getpid 1180/0x49c
> 1180 ut2004-bin CALL
> linux_sys_futex(0x2b406e30,0x81,0x7fffffff,0,0x49c,0x7)
> 1180 ut2004-bin RET linux_sys_futex 1
> 1180 ut2004-bin PSIG SIGSEGV caught handler=0x874bd50 mask=0x0 code=0x0
> 1180 ut2004-bin CALL linux_fstat64(0x1,0xbfbfa9e8,0x28fe8ff4)
> 1180 ut2004-bin UNKNOWN(8) 1180 ut2004-bin RET linux_fstat64 0
> 1180 ut2004-bin CALL linux_mmap2(0,0x1000,0x3,0x22,0xffffffff,0)
> 1180 ut2004-bin RET linux_mmap2 688971776/0x2910e000
> 1180 ut2004-bin CALL write(0x1,0x2910e000,0x25)
> 1180 ut2004-bin GIO fd 1 wrote 37 bytes
> "Signal: SIGSEGV [segmentation fault]
> "
> 1180 ut2004-bin RET write 37/0x25
> 1180 ut2004-bin CALL write(0x1,0x2910e000,0xa)
> 1180 ut2004-bin GIO fd 1 wrote 10 bytes
> "Aborting.
> "
> 1180 ut2004-bin RET write 10/0xa
> 1180 ut2004-bin CALL write(0x1,0x2910e000,0x1)
> 1180 ut2004-bin GIO fd 1 wrote 1 byte
> "
> "
> 1180 ut2004-bin RET write 1
> 1180 ut2004-bin CALL write(0x1,0x2910e000,0x1)
> 1180 ut2004-bin GIO fd 1 wrote 1 byte
> "
> "
> 1180 ut2004-bin RET write 1
> 1180 ut2004-bin CALL write(0x1,0x2910e000,0x31)
> 1180 ut2004-bin GIO fd 1 wrote 49 bytes
> "Crash information will be saved to your logfile.
> "
> 1180 ut2004-bin RET write 49/0x31
> 1180 ut2004-bin CALL
> linux_sys_futex(0x28feba34,0x81,0x7fffffff,0,0xbfbfab14,0xbfbfaaec)
> 1180 ut2004-bin RET linux_sys_futex 1
> 1180 ut2004-bin CALL
> linux_sys_futex(0x28e8eb48,0x81,0x7fffffff,0,0xbfbfaa30,0xbfbfa93c)
> 1180 ut2004-bin RET linux_sys_futex 1
> 1180 ut2004-bin CALL write(0x4,0x937c3c8,0xc)
> ...
>
> and dump from quake 4 demo:
>
> ...
> 1285 quake4.x86 RET close 0
> 1285 quake4.x86 CALL linux_getpid
> 1285 quake4.x86 RET linux_getpid 1285/0x505
> 1285 quake4.x86 CALL linux_getpid
> 1285 quake4.x86 RET linux_getpid 1285/0x505
> 1285 quake4.x86 CALL linux_getpid
> 1285 quake4.x86 RET linux_getpid 1285/0x505
> 1285 quake4.x86 CALL
> linux_sys_futex(0x2dbece30,0x81,0x7fffffff,0,0x505,0x7)
> 1285 quake4.x86 RET linux_sys_futex 1
> 1285 quake4.x86 PSIG SIGSEGV caught handler=0x8254b10 mask=0x0 code=0x0
> 1285 quake4.x86 CALL
> linux_sys_futex(0x286cd620,0x81,0x7fffffff,0,0x505,0xbfbfc51c)
> 1285 quake4.x86 RET linux_sys_futex 1
> 1285 quake4.x86 CALL write(0x1,0x283dd000,0x22)
> 1285 quake4.x86 GIO fd 1 wrote 34 bytes
> "signal caught: Segmentation fault
> "
> 1285 quake4.x86 RET write 34/0x22
> 1285 quake4.x86 CALL write(0x1,0x283dd000,0xa)
> 1285 quake4.x86 GIO fd 1 wrote 10 bytes
> "si_code 1
> "
> 1285 quake4.x86 RET write 10/0xa
> 1285 quake4.x86 CALL write(0x1,0x283dd000,0x1c)
> 1285 quake4.x86 GIO fd 1 wrote 28 bytes
> "Trying to exit gracefully..
> "
> 1285 quake4.x86 RET write 28/0x1c
> 1285 quake4.x86 CALL write(0x1,0x283dd000,0x2e)
> 1285 quake4.x86 GIO fd 1 wrote 46 bytes
> "--------------- BSE Shutdown ----------------
> "
> 1285 quake4.x86 RET write 46/0x2e
> 1285 quake4.x86 CALL write(0x1,0x283dd000,0x2e)
> 1285 quake4.x86 GIO fd 1 wrote 46 bytes
> "---------------------------------------------
> "
> 1285 quake4.x86 RET write 46/0x2e
> 1285 quake4.x86 CALL write(0x1,0x283dd000,0x35)
> 1285 quake4.x86 GIO fd 1 wrote 53 bytes
> "WARNING: rvServerScanGUI::Clear() - invalid scanGUI
>
> "
> 1285 quake4.x86 RET write 53/0x35
> 1285 quake4.x86 CALL munmap(0x2d0ee000,0x101000)
> 1285 quake4.x86 RET munmap 0
> 1285 quake4.x86 CALL munmap(0x2d1ef000,0x101000)
> ...
>
> to me it looks like the app crashes during the futex syscall, but i'm far from
> beeing an expert.
>
> it would be great if somebody could take a closer look at this.
>
pls uname -a and try patch bellow (current)
http://78.107.232.239/futex.c.33.patch
--
Have fun!
chd
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20090314/28aa337b/attachment.pgp
More information about the freebsd-current
mailing list