From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56715) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RPB1O-00025Z-Vf for qemu-devel@nongnu.org; Sat, 12 Nov 2011 05:41:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RPB1N-0007vk-Qd for qemu-devel@nongnu.org; Sat, 12 Nov 2011 05:41:14 -0500 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:42755) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RPB1N-0007vd-Lv for qemu-devel@nongnu.org; Sat, 12 Nov 2011 05:41:13 -0500 Message-ID: <4EBE4D16.3040505@weilnetz.de> Date: Sat, 12 Nov 2011 11:40:22 +0100 From: Stefan Weil MIME-Version: 1.0 References: <4EBB047A.7070104@suse.de> <4EBB9A47.1020405@suse.de> <4EBB9F1A.3020103@suse.de> <5CC0A375-CD95-472E-9688-846DF13D78A1@suse.de> <4EBBB5AE.1050803@suse.de> <4EBE4596.6010009@suse.de> In-Reply-To: <4EBE4596.6010009@suse.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [TestDays] s390x emulation error List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= Cc: Stefan Hajnoczi , Paolo Bonzini , Alexander Graf , qemu-devel Developers Am 12.11.2011 11:08, schrieb Andreas F=C3=A4rber: > Am 10.11.2011 12:29, schrieb Andreas F=C3=A4rber: > I found that the following main-loop change works around it for s390x > and rl78 but breaks x86_64 SeaBIOS boot. Paolo, any ideas? > > diff --git a/main-loop.c b/main-loop.c > index 60e9748..2ab5023 100644 > --- a/main-loop.c > +++ b/main-loop.c > @@ -460,7 +460,7 @@ int main_loop_wait(int nonblocking) > } > > glib_select_poll(&rfds, &wfds, &xfds, (ret < 0)); > - qemu_iohandler_poll(&rfds, &wfds, &xfds, ret); > + qemu_iohandler_poll(&rfds, &wfds, &xfds, (ret < 0)); > #ifdef CONFIG_SLIRP > slirp_select_poll(&rfds, &wfds, &xfds, (ret < 0)); > #endif > > A deadlock between iothread and main? > > Andreas I just tried s390x on a 386 host (32 bit!) and got a different crash (modulo operation / division with 0.0). Are 32 bit hosts supported? Stefan (gdb) r Starting program:=20 /home/stefan/src/qemu/qemu.org/qemu/bin/debug/386/s390x-softmmu/qemu-syst= em-s390x=20 [Thread debugging using libthread_db enabled] [New Thread 0xae9d0b70 (LWP 6841)] Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 0xae9d0b70 (LWP 6841)] 0x08199f6b in __umoddi3 () (gdb) i s #0 0x08199f6b in __umoddi3 () #1 0x08168a48 in helper_dlg (r1=3D2, v2=3D0) at=20 /home/stefan/src/qemu/qemu.org/qemu/target-s390x/op_helper.c:369 #2 0x00eb5a88 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) up #1 0x08168a48 in helper_dlg (r1=3D2, v2=3D0) at=20 /home/stefan/src/qemu/qemu.org/qemu/target-s390x/op_helper.c:369 369 env->regs[r1] =3D env->regs[r1+1] % divisor; (gdb) l 364 { 365 uint64_t divisor =3D v2; 366 367 if (!env->regs[r1]) { 368 /* 64 -> 64/64 case */ 369 env->regs[r1] =3D env->regs[r1+1] % divisor; 370 env->regs[r1+1] =3D env->regs[r1+1] / divisor; 371 return; 372 } else { 373 (gdb) p divisor $1 =3D 0 (gdb) p v2 $2 =3D 0