[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?
- [PATCH v8 0/8] Introduce 'yank' oob qmp command to recover from hanging qemu, Lukas Straub, 2020/09/01
- [PATCH v8 2/8] block/nbd.c: Add yank feature, Lukas Straub, 2020/09/01
- [PATCH v8 3/8] chardev/char-socket.c: Add yank feature, Lukas Straub, 2020/09/01
- [PATCH v8 4/8] migration: Add yank feature, Lukas Straub, 2020/09/01
- [PATCH v8 6/8] io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown, Lukas Straub, 2020/09/01
- [PATCH v8 5/8] io/channel-tls.c: make qio_channel_tls_shutdown thread-safe, Lukas Straub, 2020/09/01
- [PATCH v8 7/8] MAINTAINERS: Add myself as maintainer for yank feature, Lukas Straub, 2020/09/01
- [PATCH v8 8/8] tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test, Lukas Straub, 2020/09/01