Re: [Qemu-devel] [PATCH 2/10] Allow the monitor to be suspended during non-blocking op

Daniel P. Berrange
2008-09-10T10:05:36Z

On Wed, Sep 10, 2008 at 09:52:33AM +0300, Avi Kivity wrote:
> Anthony Liguori wrote:
> >Live migration happens in the background, but it is useful to make the
> >monitor
> >command appear as if it's blocking. This allows a management tool to
> >immediately know when the live migration has completed without having to
> >poll
> >the migration status.
> >
> >This patch allows the monitor to be suspended from a monitor callback which
> >will prevent new monitor commands from being executed.
> >
> >
>
> This means that migration is no longer transparent. While migration is
> going on, you can't change the cdrom media, look at cpu registers, or do
> anything that requires the monitor.

Changing cdrom media while in the middle of migration sounds like a rather
troubleprone thing todo - you'd need to change the media in both active
QEMU instances at the same time to be safe. Keeping access to the readonly
"info" family of commands though would be nice, and perhaps one or two
other commands known to be 'safe' - cont/stop would be two obvious ones

> This both reduces the functionality and complicates management
> applications. IMO migration should have asynchronous notification (and
> no, I don't think multiple monitors is the correct solution).

Even better than async notification would be something like 'info migration'
to get stats on progress, so they could give user some indication of the
progress made migrating - particularly for VMs with large amounts of RAM
which may take non-negligable time to transfer. Once you're polling to get
migration progress info, there's no immediate need for async notification
since you just wait till it gets to '100%' or some other completion state

Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|