Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Jan 2011 09:14:48 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Andrew Pantyukhin <infofarmer@FreeBSD.org>
Cc:        emulation@freebsd.org, zvqops <zvqops@dreamindustries.ru>
Subject:   Re: linux futex deadlock
Message-ID:  <20110122091448.GA60450@freebsd.org>
In-Reply-To: <269E4CF4-7C22-49CC-A263-D3F3E48F5E18@FreeBSD.org>
References:  <269E4CF4-7C22-49CC-A263-D3F3E48F5E18@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu Jan 20 11, Andrew Pantyukhin wrote:
> Hello!
> 
> I've stumbled upon an easily reproducible problem, seemingly somewhere around the linux_futex.c code.
> 
> When genpuid (from port audio/linux-genpuid) is run in several copies simultaneously, all the processes but the very first one end up in states futex or nanslp. If a make linux futex calls a noop (commenting out a few body functions), the processes work fine in parallel.
> 
> You can reproduce this way:
> - install linux-genpuid
> - get a few mp3's, say 1.mp3, 2.mp3, 3.mp3
> - run:
> for i in 1 2 3;do
> genpuid e4230822bede81ef71cde723db743e27 -xml -data -print rmd=2 $i.mp3 &
> done
> 
> Works fine under a recent ubuntu.
> 
> Anyone interested to look at this?

i haven't tried reproducing your example case, but i've also experienced the
same problem with other applications, such as adobe's flash. right now i have
about 10 instances of npviewer.bin stuck in the futex state.

apparently this issue has been known for several years now. unfortunetaly
nobody is able to do something about it. rdivacky@ is pretty much the only
person working on the linux code, but he doesn't have time atm.

i think the netbsd folks have been dealing with linux emulation, too. you might
want to go through their commit log and see, if they fixed any futex related
problems. the fixes (if they exist) should be portable to freebsd without any
major adjustments.

cheers.
alex

-- 
a13x



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