Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Mar 2009 00:03:25 +0100 (CET)
From:      Alexander Best <alexbestms@math.uni-muenster.de>
To:        <freebsd-current@freebsd.org>
Subject:   linux 3d applications keep crashing
Message-ID:  <permail-2009031323032580e26a0b00001298-a_best01@message-id.uni-muenster.de>

next in thread | raw e-mail | index | archive | help
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 versi=
on
in /compat/linux/usr/lib) causes almost every linux 3d app to segfault. sin=
ce
the library is the very same one that get's installed under linux the probl=
em
very likely resides in the linuxulator.

i ran two linux games with ktrace. this is the output from linux_kdump. i h=
ope
i copy&pasted the important pieces of the dump that report the crash.

dump from unreal tournament 2004 demo:

=2E..
  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=3D0x874bd50 mask=3D0x0 code=
=3D0x0
  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)
=2E..

and dump from quake 4 demo:

=2E..
  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=3D0x8254b10 mask=3D0x0 code=
=3D0x0
  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)
=2E..

to me it looks like the app crashes during the futex syscall, but i'm far f=
rom
beeing an expert.

it would be great if somebody could take a closer look at this.

cheers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?permail-2009031323032580e26a0b00001298-a_best01>