Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Jan 2011 21:08:43 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Jacob Frelinger <jacob.frelinger@duke.edu>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: odd regression in the linux emulator.
Message-ID:  <20110126210843.GA21919@freebsd.org>
In-Reply-To: <4D4066F5.3070407@duke.edu>
References:  <4D404145.5020507@duke.edu> <20110126175529.GA92874@freebsd.org> <4D4066F5.3070407@duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed Jan 26 11, Jacob Frelinger wrote:
> On 01/26/11 12:55, Alexander Best wrote:
> >could you provide the output of 'pkg_info -E linux_dist\*' please?
> 
> [jolly@moku ~]$ pkg_info -E linux_dist\*
> linux_dist-gentoo-stage3-20100622
> 
> >btw: i also experience the problem. newer versions of linux_dist come with
> >linux binaries that make heavy use of futextes (even 'ls'). you should see
> >a lot of futex warnings in 'dmesg -a'.
> 
> linux: pid 8416 (gmake): linux_sys_futex: op FUTEX_WAIT_BITSET not 
> implemented
> linux: pid 8907 (ls): linux_sys_futex: op FUTEX_WAIT_BITSET not implemented
> linux: pid 8908 (ls): linux_sys_futex: op FUTEX_WAIT_BITSET not implemented
> 
> yup.  got those.  I saw them before when everything was working though 
> so I assumed they weren't the problem...  ls generates them but seems to 
> work just fine.

i think you're right. the futex stuff doesn't seem to be causing problems. i
performed a kdump -d/linux_ktrace sequence and this is the result:

  8462 gmake    RET   write 67/0x43
  8462 gmake    CALL  linux_pipe(0xffffbe08)
  8462 gmake    RET   linux_pipe 0
  8462 gmake    CALL  close(0x5)
  8462 gmake    RET   close 0
  8462 gmake    CALL  linux_fcntl64(0x3,0x2,0x1)
  8462 gmake    RET   linux_fcntl64 0
  8462 gmake    CALL  linux_rt_sigprocmask(0,0x806bfe0,0,0x8)
  8462 gmake    RET   linux_rt_sigprocmask 0
  8462 gmake    CALL  linux_vfork
  8462 gmake    RET   linux_vfork 8463/0x210f
  8462 gmake    CALL  linux_rt_sigprocmask(0x2,0xffffbdb0,0,0x8)
  8462 gmake    RET   linux_rt_sigprocmask 0
  8462 gmake    CALL  linux_wait4(0xffffffff,0xffffbe5c,0,0)
  8462 gmake    RET   linux_wait4 RESTART
  8462 gmake    PSIG  SIGCHLD caught handler=0x80541a0 mask=0x0 code=0x0
  8462 gmake    CALL  linux_sigreturn(0xffffbb34)
  8462 gmake    RET   linux_sigreturn JUSTRETURN
  8462 gmake    CALL  linux_wait4(0xffffffffffffffff,0xffffffffffffbe5c,0,0)
  8462 gmake    RET   linux_wait4 -1 errno 14 Bad address
  8462 gmake    CALL  write(0x2,0xffff96b8,0xa)
  8462 gmake    GIO   fd 2 wrote 10 bytes
       "make: *** "
  8462 gmake    RET   write 10/0xa
  8462 gmake    CALL  write(0x2,0xffff96b8,0x11)
  8462 gmake    GIO   fd 2 wrote 17 bytes
       "wait: Bad address"
  8462 gmake    RET   write 17/0x11
  8462 gmake    CALL  write(0x2,0x8068727,0x9)
  8462 gmake    GIO   fd 2 wrote 9 bytes
       ".  Stop.
       "
  8462 gmake    RET   write 9
  8462 gmake    CALL  write(0x2,0xffff9618,0x6)
  8462 gmake    GIO   fd 2 wrote 6 bytes
       "make: "
  8462 gmake    RET   write 6
  8462 gmake    CALL  write(0x2,0xffff9618,0x23)
  8462 gmake    GIO   fd 2 wrote 35 bytes
       "*** Waiting for unfinished jobs...."

...so something's wrong with the linux_wait4() call.

cheers.
alex

> 
> I may try down porting linux_dist and seeing how that works...
> 
> >i believe the issue is with FUTEX_WAIT_BITSET. since it isn't that 
> >different
> >from FUTEX_WAIT (which is already implemented), i've started to implement 
> >it.
> >however i don't have a lot of time atm unfortunately.
> 
> 
> Time seems to be a commodity in short supply for everyone.  I'm no 
> kernel hacker, but I'm happy to test patches, etc.
> 
> 
> -- 
> Jacob Frelinger
> jacob.frelinger@duke.edu
> CBB Graduate Student

-- 
a13x



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110126210843.GA21919>