From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33579) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VZNuq-0003sk-GA for qemu-devel@nongnu.org; Thu, 24 Oct 2013 12:37:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VZNul-0002Lf-2y for qemu-devel@nongnu.org; Thu, 24 Oct 2013 12:37:44 -0400 Received: from v220110690675601.yourvserver.net ([37.221.199.173]:46532) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VZNuk-0002LL-TA for qemu-devel@nongnu.org; Thu, 24 Oct 2013 12:37:39 -0400 Message-ID: <52694CC1.6040301@weilnetz.de> Date: Thu, 24 Oct 2013 18:37:21 +0200 From: Stefan Weil MIME-Version: 1.0 References: <20131023073949.GA4527@bom.nom.co> <52679025.3000106@redhat.com> <526830E6.6070904@weilnetz.de> <5268F8B4.7030105@redhat.com> In-Reply-To: <5268F8B4.7030105@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] qemu 1.6.1 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: "Michael W. Bombardieri" , qemu-devel@nongnu.org, Stefan Hajnoczi Am 24.10.2013 12:38, schrieb Paolo Bonzini: > Il 23/10/2013 21:26, Stefan Weil ha scritto: >> Am 23.10.2013 11:00, schrieb Paolo Bonzini: >>> Il 23/10/2013 08:39, Michael W. Bombardieri ha scritto: >>>> Hi, >>>> >>>> My newly built qemu/win32 binary (v1.6.1) crashes in qemu-system-i386 and qemu-system-x86_64 when >>>> booting from an install CD. >>>> >>>> C:\Program Files\qemu>qemu-system-x86_64 -boot d -vnc 0.0.0.0:20 -cdrom NetBSD-6.1.2-amd64.iso >>>> Assertion failed: qemu_in_coroutine(), file qemu-coroutine-lock.c, line 99 >>>> >>>> This application has requested the Runtime to terminate it in an unusual way. >>>> Please contact the application's support team for more information. >>>> >>>> I noticed that qemu-system-sparc still booted OpenBSD/sparc 5.3 install CD correctly. >>>> No further info at this stage. >>>> Any ideas? >>> It's a known problem that not everyone can reproduce. Please compile >>> with --disable-coroutine-pool on the configure command line. >>> >>> Paolo >> This patch also helps (at least for me, tested native and on Linux / Wine): >> http://repo.or.cz/w/qemu/ar7.git/commit/c777d5d62a729fd8b19847aaa0aad3d7a1f73f47 >> >> It looks like a compiler problem related to thread local storage >> (variable "current"). > Ugh. > >> I recently got several bug reports from a Windows user and included >> patches to fix them in >> my personal tree http://repo.or.cz/w/qemu/ar7.git. The binaries on >> qemu.weilnetz.de >> are based on that tree. > Does something like > > CoroutineWin32 *from = DO_UPCAST(CoroutineWin32, base, current); > > also work? Then we can just remove from_. > > Paolo Yes, that works, too. It also fixes the problem with the assertion (tested with Wine). No, we cannot remove from_, because the same interface is also used for Linux and other hosts which don't have a 'current' variable. Or we would have to call qemu_coroutine_self() to get the current coroutine. Stefan