qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Luiz Capitulino <lcapitulino@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH v3 0/5] Add QMP migration events
Date: Mon, 14 Jun 2010 11:36:04 -0300	[thread overview]
Message-ID: <20100614113604.305a6ab4@redhat.com> (raw)
In-Reply-To: <m3vd9obip5.fsf@trasno.mitica>

On Sat, 12 Jun 2010 13:20:54 +0200
Juan Quintela <quintela@redhat.com> wrote:

> Luiz Capitulino <lcapitulino@redhat.com> wrote:
> > On Fri, 11 Jun 2010 09:38:42 -0500
> > Anthony Liguori <anthony@codemonkey.ws> wrote:
> >
> >> >   1. QMP only returns the response when the command is finished, eg:
> >> >
> >> >      C: { "execute": "migrate", "id": "foo" ... }
> >> >      /* nothing is returned, other commands are issued, after several hours... */
> >> >      S: { "return": ... "id": "foo" }
> >> >    
> >> 
> >> This is how just about every RPC mechanism works...
> >
> >  Let's go for it then.
> >
> >> >> - MIGRATION_STARTED:  somebody started a migration, it is emited on
> >> >>    source and target, all monitors receive this event.
> >> >>      
> >> >   The client has started the migration, it knows it. Why is the event needed?
> >> >    
> >> 
> >> I think we've more or less agreed that MIGRATION_CONNECTED is really the 
> >> event we want.
> >
> >  Is it useful in the source or in the target?
> 
> Both.

 What does it report in the source?

> >> >> - MIGRATION_ENDED: migration ended with sucess, all needed data is in
> >> >>    target machine.  Also emitted in all monitors on source and target.
> >> >>
> >> >> - MIGRATION_CANCELED: in one of the source monitors somebody typed:
> >> >>    migrate_cancel.  It is only emmited on the source monitors, target
> >> >>    monitors will receive a MIGRATION_FAILED event.
> >> >>
> >> >> - MIGRATION_FAILED (with this error).  At this point we don't have
> >> >>    neither the QMP infraestructure for sending (with this error) nor
> >> >>    migration infrastructure to put there anything different than -1.
> >> >>      
> >> >   Aren't all the three events above duplicating the async response?
> >> >    
> >> 
> >> Yes.  Today, we should just generate a MIGRATION_DONE event and let a 
> >> client poll for failure status.
> >
> > [...]
> >
> >> MIGRATION_DONE gets deprecated for 0.14.
> >
> >  Yeah, this removes the need for polling in 0.13, but I was wondering if
> > it's worth it. If I'm not mistaken, libvirt does the polling when working
> > with the text Monitor and I believe it's not a big deal to keep it until 0.14.
> 
> It makes things slower for no good reason.
> 
> This reasoning is sneaky at least: 
> - qemu didn't give interfaces to libvirt for do what libvirt wanted
> - libvirt uses workarounds
> - qemu tells libvirt that they are using workarounds that they shouldn't
> - libvirt tells qemu why they need the new interface
> - qemu tells libvirt that they could continue to use its workarounds.
> 
> I am losing something?  The whole point of live migration is that they
> need to be as fast as possible.  For some scenaries (shared storage with
> funny locking) libvirt needs to move from shared locks to normal locks
> as far as migration ends on target.  We are telling them to do
> workarounds becauese qemu don't want to tell libvirt on destination when
> migration has ended.
> 
> Why can't we just tell them that migration has ended with success as
> fast as possible?
> 
> I can't understand what I am missing here.  I can't believe that
> libvirt(management app in general) could came with a simple request that
> would make its live better.  And to make things worse, it is _trivial_
> to implement, semantics are clear, has other uses, .....

 I'd be ok in having the done event if the polling is shown to be that
problematic, but from some private talks I had with libvirt guys it seemed
to me that it's more like a wish have.

 For us, having this event means that we'll have to carry it for (at least)
several releases. I really would like to avoid adding one-time workarounds
in a stable interface like QMP.

  reply	other threads:[~2010-06-14 14:36 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-09 12:10 [Qemu-devel] [PATCH v3 0/5] Add QMP migration events Juan Quintela
2010-06-09 12:10 ` [Qemu-devel] [PATCH v3 1/5] Exit if incoming migration fails Juan Quintela
2010-06-23  1:47   ` Anthony Liguori
2010-06-24 20:41     ` [Qemu-devel] [PATCH] win32: Add define for missing EPROTONOSUPPORT Stefan Weil
2010-06-27 20:25       ` Blue Swirl
2010-06-09 12:10 ` [Qemu-devel] [PATCH v3 2/5] Factorize common migration incoming code Juan Quintela
2010-06-09 12:10 ` [Qemu-devel] [PATCH v3 3/5] QMP: Introduce MIGRATION events Juan Quintela
2010-06-09 20:54   ` Luiz Capitulino
2010-06-10 10:33     ` [Qemu-devel] " Juan Quintela
2010-06-11 13:12       ` Luiz Capitulino
2010-06-09 12:10 ` [Qemu-devel] [PATCH v3 4/5] QMP: Emit migration events on incoming migration Juan Quintela
2010-06-09 12:10 ` [Qemu-devel] [PATCH v3 5/5] QMP: Emit migration events on outgoing migration Juan Quintela
2010-06-09 14:47 ` [Qemu-devel] [PATCH v3 0/5] Add QMP migration events Yoshiaki Tamura
2010-06-09 15:59   ` [Qemu-devel] " Juan Quintela
2010-06-09 22:07     ` Yoshiaki Tamura
2010-06-09 20:52 ` [Qemu-devel] " Luiz Capitulino
2010-06-09 21:19   ` Yoshiaki Tamura
2010-06-10 10:44   ` [Qemu-devel] " Juan Quintela
2010-06-11 14:30     ` Luiz Capitulino
2010-06-11 14:38       ` Anthony Liguori
2010-06-11 16:42         ` Luiz Capitulino
2010-06-12 11:20           ` Juan Quintela
2010-06-14 14:36             ` Luiz Capitulino [this message]
2010-06-14 15:45               ` Juan Quintela
2010-06-12 11:14         ` Juan Quintela
2010-06-14 13:58           ` Anthony Liguori
2010-06-14 14:24             ` Luiz Capitulino
2010-06-14 14:35               ` Anthony Liguori
2010-06-14 14:42                 ` Luiz Capitulino
2010-06-12 11:05       ` Juan Quintela
2010-06-14 14:03         ` Anthony Liguori
2010-06-14 16:02           ` Juan Quintela
2010-06-14 16:10             ` Anthony Liguori
2010-06-14 18:35               ` Juan Quintela
2010-06-14 19:07                 ` Anthony Liguori
2010-06-14 19:54                   ` Juan Quintela
2010-06-14 20:01                     ` Anthony Liguori
2010-06-15 10:30                       ` Juan Quintela
2010-06-15 13:40                         ` Luiz Capitulino
2010-06-15 15:24                           ` Juan Quintela
2010-06-16 18:01                             ` Luiz Capitulino
2010-06-16 19:10                               ` Juan Quintela
2010-06-17 14:23                                 ` Luiz Capitulino
2010-06-17 16:34                                   ` Juan Quintela
2010-06-17 16:45                                     ` Luiz Capitulino
2010-06-17 17:53                                       ` Anthony Liguori

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=20100614113604.305a6ab4@redhat.com \
    --to=lcapitulino@redhat.com \
    --cc=aliguori@us.ibm.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).