From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52247) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WJOAl-00085m-QG for qemu-devel@nongnu.org; Fri, 28 Feb 2014 09:12:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WJOAg-0005r1-Pz for qemu-devel@nongnu.org; Fri, 28 Feb 2014 09:12:19 -0500 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:38167 helo=socrates.bennee.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WJOAg-0005qd-Ji for qemu-devel@nongnu.org; Fri, 28 Feb 2014 09:12:14 -0500 References: <87sirhyi1b.fsf@linaro.org> <87txbnfuw1.fsf@linaro.org> <530C5925.8060608@suse.de> From: Alex =?utf-8?Q?Benn=C3=A9e?= Message-ID: <87ppm7fhsb.fsf@linaro.org> In-reply-to: Date: Fri, 28 Feb 2014 14:12:27 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] Call for testing QEMU aarch64-linux-user emulation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Matz Cc: Peter Maydell , linaro-dev , Dann Frazier , Alexander Graf , "linaro-toolchain@lists.linaro.org" , qemu-devel , Wook Wookey , Andreas =?utf-8?Q?F=C3=A4rbe?= =?utf-8?Q?r?= , Christoffer Dall Michael Matz writes: > Hi, > > On Tue, 25 Feb 2014, Peter Maydell wrote: > >> On 25 February 2014 13:33, Michael Matz wrote >> > The biggest road-block is that signal vs syscall handling is >> > fundamentally broken in linux-user and it's unfixable without >> > assembler implementations of the syscall caller. >> >> I'm not entirely sure it's possible to fix even with >> hand-rolled assembly, to be honest. > > I am fairly sure. The problem is "simply" to detect if the signal arrived > while inside the kernel (doing the syscalls job) or still or already > outside. This structure helps with that: Is this "simply" a case of having a precise state in/around syscalls? AIUI we already have such a mechanism for dealing with faults in translated code so this is all aimed at when an asynchronous signal arrives somewhere in QEMU's own code. So this case be: * the execution/translation loop * a helper function * a syscall (helper jump out of execution/translation loop?) I wonder if it would be possible to defer the handing of the signal back to the process until we know we are precise? -- Alex Bennée Finding this all eerily familiar.