Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Mar 2009 13:52:14 +0100 (CET)
From:      Alexander Best <alexbestms@math.uni-muenster.de>
To:        <freebsd-current@freebsd.org>
Cc:        Chagin Dmitry <dchagin@freebsd.org>
Subject:   Re: linux 3d applications keep crashing
Message-ID:  <permail-200903141252141e86ffa8000077e8-a_best01@message-id.uni-muenster.de>
In-Reply-To: <20090314085905.GA3591@dchagin.static.corbina.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
thanks for the patch. i applied it and recompiled/reinstalled the kernel. i
ran quake 4 afterwards and the app still crashes:

=2E..
1837 quake4.x86 CALL  linux_sys_futex(0x2dbece30,0x81,0x7fffffff,0,0x72d,0x=
7)
  1837 quake4.x86 RET   linux_sys_futex 0
  1837 quake4.x86 PSIG  SIGSEGV caught handler=3D0x8254b10 mask=3D0x0 code=
=3D0x0
  1837 quake4.x86 CALL
  linux_sys_futex(0x286ce620,0x81,0x7fffffff,0,0x72d,0xbfbfc4fc)
  1837 quake4.x86 RET   linux_sys_futex 0
  1837 quake4.x86 CALL  write(0x1,0x283dd000,0x22)
  1837 quake4.x86 GIO   fd 1 wrote 34 bytes
       "signal caught: Segmentation fault
       "
  1837 quake4.x86 RET   write 34/0x22
  1837 quake4.x86 CALL  write(0x1,0x283dd000,0xa)
  1837 quake4.x86 GIO   fd 1 wrote 10 bytes
       "si_code 1
       "
  1837 quake4.x86 RET   write 10/0xa
  1837 quake4.x86 CALL  write(0x1,0x283dd000,0x1c)
  1837 quake4.x86 GIO   fd 1 wrote 28 bytes
       "Trying to exit gracefully..
       "
=2E..

the only difference seems to be that now linux_sys_futex is returning 0 as
return value. without the patch it returned 1.

cheers.

Chagin Dmitry schrieb am 2009-03-14:
> 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=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)
> > ...

> > 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=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)
> > ...

> > 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




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