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: Markus Armbruster
Subject: Re: [PATCH v8 1/8] Introduce yank feature
Date: Wed, 02 Sep 2020 09:55:17 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Daniel P. Berrangé <berrange@redhat.com> writes:

> 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.

Thanks.  Would it make sense to work this into the documentation?




reply via email to

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