odd regression in the linux emulator.
Alexander Best
arundel at freebsd.org
Wed Jan 26 21:08:43 UTC 2011
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 at 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 at duke.edu
> CBB Graduate Student
--
a13x
More information about the freebsd-emulation
mailing list