From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59688) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0Vld-0006UJ-AP for qemu-devel@nongnu.org; Mon, 05 Sep 2011 05:47:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R0Vlc-00084V-CZ for qemu-devel@nongnu.org; Mon, 05 Sep 2011 05:47:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:9569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0Vlc-00084Q-2t for qemu-devel@nongnu.org; Mon, 05 Sep 2011 05:47:00 -0400 Message-ID: <4E649A8F.9010506@redhat.com> Date: Mon, 05 Sep 2011 12:46:55 +0300 From: Avi Kivity MIME-Version: 1.0 References: <1314018774-27482-1-git-send-email-aliguori@us.ibm.com> <1314018774-27482-2-git-send-email-aliguori@us.ibm.com> <4E63851F.3070205@redhat.com> In-Reply-To: <4E63851F.3070205@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] main: switch qemu_set_fd_handler to g_io_add_watch List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Blue Swirl , Paolo Bonzini , qemu-devel@nongnu.org, Kevin Wolf On 09/04/2011 05:03 PM, Avi Kivity wrote: > On 08/22/2011 04:12 PM, Anthony Liguori wrote: >> This patch changes qemu_set_fd_handler to be implemented in terms of >> g_io_add_watch(). The semantics are a bit different so some glue is >> required. >> >> qemu_set_fd_handler2 is much harder to convert because of its use of >> polling. >> >> The glib main loop has the major of advantage of having a proven >> thread safe >> architecture. By using the glib main loop instead of our own, it >> will allow us >> to eventually introduce multiple I/O threads. >> >> I'm pretty sure that this will work on Win32, but I would appreciate >> some help >> testing. I think the semantics of g_io_channel_unix_new() are really >> just tied >> to the notion of a "unix fd" and not necessarily unix itself. > > 'git bisect' fingered this as responsible for breaking > qcow2+cache=unsafe. I think there's an off-by-one here and the guilty > patch is the one that switches the main loop, but that's just a guess. > > The symptoms are that a guest that is restarted (new qemu process) > after install doesn't make it through grub - some image data didn't > make it do disk. With qcow2 and cache=unsafe that can easily happen > through exit notifiers not being run and the entire qcow2 metadata > being thrown out the window. Running with raw+cache=unsafe works. > Upstream appears to work for me... strange. -- error compiling committee.c: too many arguments to function