|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [PATCH 2/2] main: switch qemu_set_fd_handler to g_io_add_watch |
Date: | Mon, 05 Sep 2011 12:46:55 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 |
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 ofg_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 usto 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 tiedto 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
[Prev in Thread] | Current Thread | [Next in Thread] |