From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nduuq-00072o-MB for qemu-devel@nongnu.org; Sat, 06 Feb 2010 19:22:20 -0500 Received: from [199.232.76.173] (port=35381 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nduuq-00072d-9k for qemu-devel@nongnu.org; Sat, 06 Feb 2010 19:22:20 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1Nduuo-0006mG-Uc for qemu-devel@nongnu.org; Sat, 06 Feb 2010 19:22:20 -0500 Received: from mail2.shareable.org ([80.68.89.115]:54031) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Nduuo-0006le-Ju for qemu-devel@nongnu.org; Sat, 06 Feb 2010 19:22:18 -0500 Date: Sun, 7 Feb 2010 00:22:15 +0000 From: Jamie Lokier Subject: Re: [Qemu-devel] [PATCH] User mode: Handle x86_64 vsyscall Message-ID: <20100207002215.GA19430@shareable.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <761ea48b1002061550o54a940bfo438fb5f052c5e06e@mail.gmail.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Desnogues Cc: qemu-devel@nongnu.org Laurent Desnogues wrote: > On Sat, Feb 6, 2010 at 8:49 AM, Stefan Weil wrote: > [...] > > I tested two different hosts with x86_64-linux-user: > > > > * 32 bit Intel (i386) - does not work with your patch > > For me x86_64 on i386 has always failed without > even calling vsyscall :-) > > > * 64 bit AMD (x86_64)  - works with your patch It's a bit worrying that it depends on the host architecture at all. How well does x86_64-linux-user emulation work on non-x86 hosts? Does the vsyscall emulation depend only on the hosts's address sixe, or does it have to be an x86 host to work? > > * it is not possible to step into vsyscall code > >  using a debugger > > How would you achieve that? Your guest OS > doesn't necessarily have the code mapped. I > think this has to be considered as other syscalls, > though slightly different. There is no guest OS when doing -user emulation. Only qemu. > > My favorite solution would be a vsyscall page mapped > > to the correct fixed address and filled with QEMU > > generated specific code, for example code which calls the > > normal syscalls to do the work. This would only > > need modifications for linux-user code. > > You mean you'd explicitly put somewhere x86_64 > code that simulates the behaviour of vsyscall? That seems like a good idea to me. -- Jamie