qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: amit.shah@redhat.com, liang.z.li@intel.com,
	qemu-devel@nongnu.org, quintela@redhat.com
Subject: Re: [Qemu-devel] [RFC 1/1] Execute arbitrary QMP commands from command line
Date: Thu, 29 Jan 2015 15:58:40 +0000	[thread overview]
Message-ID: <20150129155839.GH1102@redhat.com> (raw)
In-Reply-To: <20150129154634.GD2391@work-vm>

On Thu, Jan 29, 2015 at 03:46:35PM +0000, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrange (berrange@redhat.com) wrote:
> > On Thu, Jan 29, 2015 at 03:22:55PM +0000, Dr. David Alan Gilbert wrote:
> > > * Daniel P. Berrange (berrange@redhat.com) wrote:
> > > > On Thu, Jan 29, 2015 at 03:06:37PM +0000, Dr. David Alan Gilbert (git) wrote:
> > > > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > > > > 
> > > > > For an incoming migration it's potentially useful to be able to set
> > > > > capabilities and parameters prior to opening the connection, while
> > > > > a separate option for that would have been possible it seems better
> > > > > to give access to all the existing migration capabilities, parameters
> > > > > etc.  The least restrictive way of doing this is to allow arbitrary
> > > > > QMP commands to be executed prior to the -incoming being processed.
> > > > > 
> > > > > As an example:
> > > > > 
> > > > > ./bin/qemu-system-x86_64 -nographic -nodefaults -qmp-command '{"execute": "migrate-set-capabilities", "arguments":{"capabilities":[{"capability":"xbzrle","state":true}]}}' -qmp-command '{"execute": "query-migrate-capabilities"}' -incoming tcp::444
> > > > 
> > > > I'm unclear how we'd easily deal with the response from commands
> > > > invoked this way, to get replies and/or errors. Also, it might
> > > > be the case that we need to conditionally run certain commands
> > > > depending on the result of earlier commands.
> > > > 
> > > > Wouldn't it make more sense to simply add a 'migrate_incoming' QMP
> > > > command, and stop using -incoming altogether, so we just have normal
> > > > QMP access ?
> > > > 
> > > > eg,
> > > > 
> > > >     #  qemu-system-x86_64 ....device args...  -S
> > > >     (qmp) ....arbitrary QMP commands ..
> > > >     (qmp) {"execute":"migrate-incoming", "arguments": { "uri": "tcp::44" }}
> > > 
> > > I'm a bit worried about whether starting an incoming migrate afterwards is
> > > different in any subtle way.  I can see there are a handful of devices that
> > > have 'runstate_check(RUN_STATE_INMIGRATE)' calls in, and thus I'm not sure
> > > that starting a paused VM and then flipping to RUN_STATE_INMIGRATE would
> > > be quite the same.
> > > 
> > > Having said that, we do have 'loadvm' that's similar to an incoming migration.
> > 
> > Yep, existance of 'loadvm' does give confidence that this should work with
> > migration, hopefully only needing a few cleanups for the state check you
> > mention above.
> 
> Hmm I'm not sure; I've had a dig and the tests for INMIGRATE do a lot of random
> things; qxl, usb, and blockdev for starters, and the block stuff sets a flag
> that is then passed to qcow and other backends that do stuff all over with it.
> 
> Howver, something like:
> 
>    -incoming pause
> 
> followed by the monitor command later should work - how do you feel
> about that?

That's workable from the libvirt POV. We'll probe the existance of the
'migrate-incoming' QMP command when getting capabilities, so we'll know
upfront that we can use the "-incoming pause" approach.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  parent reply	other threads:[~2015-01-29 15:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29 15:06 [Qemu-devel] [RFC 0/1] Incoming migration vs early monitor commands Dr. David Alan Gilbert (git)
2015-01-29 15:06 ` [Qemu-devel] [RFC 1/1] Execute arbitrary QMP commands from command line Dr. David Alan Gilbert (git)
2015-01-29 15:15   ` Daniel P. Berrange
2015-01-29 15:21     ` Eric Blake
2015-01-29 15:54       ` Dr. David Alan Gilbert
2015-01-29 16:01         ` Eric Blake
2015-01-29 16:28           ` Dr. David Alan Gilbert
2015-01-29 17:45             ` Eric Blake
2015-01-29 20:21               ` Dr. David Alan Gilbert
2015-01-29 20:48                 ` Eric Blake
2015-01-30  9:38                   ` Dr. David Alan Gilbert
2015-01-30  9:50                     ` Paolo Bonzini
2015-01-30  9:56                       ` Dr. David Alan Gilbert
2015-02-03 10:12                       ` Amit Shah
2015-02-03 11:02                         ` Paolo Bonzini
2015-01-30  9:50                     ` Daniel P. Berrange
2015-01-30  8:34                 ` Markus Armbruster
2015-01-30  9:20                   ` Dr. David Alan Gilbert
2015-01-30  9:43                     ` Markus Armbruster
2015-01-30  8:35       ` Markus Armbruster
2015-01-29 15:22     ` Dr. David Alan Gilbert
2015-01-29 15:31       ` Daniel P. Berrange
2015-01-29 15:46         ` Dr. David Alan Gilbert
2015-01-29 15:50           ` Eric Blake
2015-01-29 15:56             ` Dr. David Alan Gilbert
2015-01-29 15:58           ` Daniel P. Berrange [this message]
2015-01-30  9:52       ` Paolo Bonzini
2015-01-30 10:02         ` Dr. David Alan Gilbert
2015-01-30 10:27           ` Paolo Bonzini
2015-01-29 15:25 ` [Qemu-devel] [RFC 0/1] Incoming migration vs early monitor commands Eric Blake
2015-01-29 23:08 ` Paolo Bonzini
2015-01-30  9:42   ` Dr. David Alan Gilbert

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=20150129155839.GH1102@redhat.com \
    --to=berrange@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=liang.z.li@intel.com \
    --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).