On Wed, Jan 24, 2018 at 01:39:34PM +0800, Peter Xu wrote: > This version should have addressed all comments in previous one, also > fixed another race condition after I addressed all the comments (a new > race condition introduced by addressing the comments...). For some > more details of the race condition, please see the last entry of > change log, and please refer to patch 9 for the code change. > > I removed RFC tag from this version. Please review. Thanks. > > v7: > - add some r-bs, and remove some. > - remove the chardev fix since already queued by Paolo > - use local var in qemu_chr_fe_add_watch [Stefan] > - move doc patch to front, mention it in some patches [Eric] > - Quite a few of English fixes [Eric] > - fix unlock missing in handle_qmp_command [Stefan] > - squash some patches according to the review comments > - don't break gdbserver usage on HMP non-interactive mode by fixing up > the suspend/resume logic [Fam, Stefan] > - move the qemu_chr_fe_set_handlers() call in monitor_init() into a > bottom half to avoid race between the call itself and > iothread. [Stefan] > - spent quite a lot of time debugging another assertion failure in > io_watch_poll_finalize() after above change is made (ouch! I really > hoped we always have the latest glib): when QEMU inits chardevs in > chardev_init_func() it's possible that QEMU registers the chardev > handlers there, even before CharBackend is connected to that chardev > in monitor_init(). Then, when we reach monitor_init() we must make > sure we unregister that old one first, or there can have one orphan > GSource still in default gcontext (note that this can really happen > when we start to use QEMUBH to setup chardev frontends, which is > above change).
Online repository updated for v7: https://github.com/xzpeter/qemu/tree/monitor-oob Thanks, -- Peter Xu