qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v8 1/8] Introduce yank feature


From: Daniel P . Berrangé
Subject: Re: [PATCH v8 1/8] Introduce yank feature
Date: Tue, 1 Sep 2020 16:22:59 +0100
User-agent: Mutt/1.14.6 (2020-07-11)

On Tue, Sep 01, 2020 at 04:38:46PM +0200, Markus Armbruster wrote:
> One more question...
> 
> Lukas Straub <lukasstraub2@web.de> writes:
> 
> > The yank feature allows to recover from hanging qemu by "yanking"
> > at various parts. Other qemu systems can register themselves and
> > multiple yank functions. Then all yank functions for selected
> > instances can be called by the 'yank' out-of-band qmp command.
> > Available instances can be queried by a 'query-yank' oob command.
> >
> > Signed-off-by: Lukas Straub <lukasstraub2@web.de>
> > Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
> [...]
> > diff --git a/qapi/misc.json b/qapi/misc.json
> > index 9d32820dc1..7de330416a 100644
> > --- a/qapi/misc.json
> > +++ b/qapi/misc.json
> > @@ -1615,3 +1615,65 @@
> >  ##
> >  { 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' }
> >
> > +##
> > +# @YankInstances:
> > +#
> > +# @instances: List of yank instances.
> > +#
> > +# A yank instance can be yanked with the "yank" qmp command to recover 
> > from a
> > +# hanging qemu.
> > +#
> > +# Yank instances are named after the following schema:
> > +# "blockdev:<node-name>" refers to a block device. Currently only nbd block
> > +# devices are implemented.
> > +# "chardev:<chardev-name>" refers to a chardev. Currently only socket 
> > chardevs
> > +# are implemented.
> > +# "migration" refers to the migration currently in progress.
> > +#
> > +# Currently implemented yank instances:
> > +#  -nbd block device:
> > +#   Yanking it will shutdown the connection to the nbd server without
> > +#   attempting to reconnect.
> > +#  -socket chardev:
> > +#   Yanking it will shutdown the connected socket.
> > +#  -migration:
> > +#   Yanking it will shutdown all migration connections.
> 
> How is yanking migration related to command migrate_cancel?

migrate_cancel will do a shutdown() on the primary migration socket only.
In addition it will toggle the migration state.

Yanking will do a shutdown on all migration sockets (important for
multifd), but won't touch migration state or any other aspect of QEMU
code.

Overall yanking has less potential for things to go wrong than the
migrate_cancel method, as it doesn't try to do any kind of cleanup
or migration.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]