qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	"Lukas Straub" <lukasstraub2@web.de>,
	qemu-block <qemu-block@nongnu.org>,
	"Juan Quintela" <quintela@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"Max Reitz" <mreitz@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Subject: Re: [PATCH v8 1/8] Introduce yank feature
Date: Tue, 1 Sep 2020 16:22:59 +0100	[thread overview]
Message-ID: <20200901152259.GO345480@redhat.com> (raw)
In-Reply-To: <874kohsgsp.fsf@dusky.pond.sub.org>

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	other threads:[~2020-09-01 15:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-01  9:14 [PATCH v8 0/8] Introduce 'yank' oob qmp command to recover from hanging qemu Lukas Straub
2020-09-01  9:15 ` [PATCH v8 1/8] Introduce yank feature Lukas Straub
2020-09-01  9:45   ` Daniel P. Berrangé
2020-09-01 11:30   ` Markus Armbruster
2020-09-01 14:38   ` Markus Armbruster
2020-09-01 15:22     ` Daniel P. Berrangé [this message]
2020-09-02  7:55       ` Markus Armbruster
2020-09-01  9:15 ` [PATCH v8 2/8] block/nbd.c: Add " Lukas Straub
2020-09-01  9:15 ` [PATCH v8 3/8] chardev/char-socket.c: " Lukas Straub
2020-09-01  9:15 ` [PATCH v8 4/8] migration: " Lukas Straub
2020-09-01  9:46   ` Daniel P. Berrangé
2020-09-01  9:15 ` [PATCH v8 5/8] io/channel-tls.c: make qio_channel_tls_shutdown thread-safe Lukas Straub
2020-09-01  9:15 ` [PATCH v8 6/8] io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown Lukas Straub
2020-09-01  9:46   ` Daniel P. Berrangé
2020-09-01  9:15 ` [PATCH v8 7/8] MAINTAINERS: Add myself as maintainer for yank feature Lukas Straub
2020-09-01  9:15 ` [PATCH v8 8/8] tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test Lukas Straub

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200901152259.GO345480@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lukasstraub2@web.de \
    --cc=marcandre.lureau@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).