From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KdAd3-00021z-KG for qemu-devel@nongnu.org; Tue, 09 Sep 2008 17:20:05 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KdAd1-0001z6-Pm for qemu-devel@nongnu.org; Tue, 09 Sep 2008 17:20:04 -0400 Received: from [199.232.76.173] (port=59666 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KdAd1-0001yq-KM for qemu-devel@nongnu.org; Tue, 09 Sep 2008 17:20:03 -0400 Received: from moutng.kundenserver.de ([212.227.126.177]:61832) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KdAd0-0000CE-MR for qemu-devel@nongnu.org; Tue, 09 Sep 2008 17:20:03 -0400 Message-ID: <48C6E861.2000306@5etech.eu> Date: Tue, 09 Sep 2008 23:19:29 +0200 From: Martin Mohring MIME-Version: 1.0 Subject: Re: [Qemu-devel] user emulation status? References: <48C43986.3030903@wpkg.org> <20080909183443.GH4829@genesis.frugalware.org> <48C6D16C.1080102@5etech.eu> <200809092102.00238.paul@codesourcery.com> In-Reply-To: <200809092102.00238.paul@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org Paul Brook wrote: >>> AFAIK NPTL only works fine only on ARM ATM. >>> >> The guys porting BSD user mode told us that was astonished that syscall >> handling in linux does not use common code. Now I am a bit stonished >> too. Are things like syscalls and even more nptl not handled in common >> code? Or is the non common code just not implemented? >> Btw, I was one of the "SUSE guys". I can offer testing qemu user by setting up every single chroot you whish (with every single linux distro you whish, not only static chroots). We can do that with our buildsystem now. Do you have a place for testresults, which help the developers? > > The kenrel/userspace interface for NPTL is actually very small. There's a few > extra arguments to clone, TLS register handling and synchronization > primitives. > > The clone arguments are pretty much the same on all architectures. Variations > tend to be minor tweaks to do with passing a large number of arguments to a > syscall. > > Pretty much every architecture has its own mechanism for providing a TLS > register. Some have dedicated hardware registers for this purpose, others use > a variety of tricks to provide the value. qemu needs to support this before > even single threaded NPTL applications will work. > OK, understood. Its using the hardware optimizations provided by the processor isa. > Synchronisation primitives operations come in two halves. futex syscalls which > are the same on all targets, and atomic operations which are different for > each architecture. To make multithreaded applications work you need to > ensure these atomic operations actually appear atomic. > Ok, understood. Another argument was: If multi-threading is provided, qemu user must be thread-safe itself.