From: "Daniel P. Berrange" <berrange@redhat.com>
To: Lei Li <lilei@linux.vnet.ibm.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>,
quintela@redhat.com, qemu-devel@nongnu.org,
mrhines@linux.vnet.ibm.com, mdroth@linux.vnet.ibm.com,
aliguori@amazon.com, lagarcia@br.ibm.com, pbonzini@redhat.com,
rcj@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 0/17 v3] Localhost migration with side channel for ram
Date: Fri, 22 Nov 2013 11:36:47 +0000 [thread overview]
Message-ID: <20131122113647.GC16339@redhat.com> (raw)
In-Reply-To: <528F4001.3050600@linux.vnet.ibm.com>
On Fri, Nov 22, 2013 at 07:29:05PM +0800, Lei Li wrote:
> On 11/21/2013 06:19 PM, Daniel P. Berrange wrote:
> >On Thu, Nov 21, 2013 at 05:11:23PM +0800, Lei Li wrote:
> >In discussions about supporting this for libvirt, we were told that
> >when this localhost migration fails, you cannot re-start the guest
> >on the original source QEMU.
> >
> >If this is true, this implementation is not satisfactory IMHO. One
> >of the main motivations of this feature is to allow for in-place
> >live upgrades of QEMU binaries, for people who can't tolerate the
> >downtime of restarting their guests, and whom don't have a spare
> >host to migrate them to.
> >
> >If people are using this because they can't tolerate any downtime
> >of the guest, then we need to be able to fully deal with failure to
> >complete migration by switching back to the original QEMU process,
> >as we can do with normal non-localhost migration.
>
> Hi Daniel,
>
> Page flipping is introduced here not primarily for low downtime, but
> more to avoid requiring that there is enough free memory to fit an
> additional copy of the largest guest which is the requirement today
> with current localhost migration as the additional explanation from
> Anthony in first proposal version [1].
>
> Of course low downtime is also important to the page flipping
> migration as the use case of it is to allow 'live' upgrade of a
> running QEMU instance, so we expect page flipping through vmsplice
> is fast enough to meet it. As an initial implementation of this
> feature right now, the downtime is not good, but we are working on
> it as there has been some work on kernel side [2].
>
> During the page flipping migration, ram page of source guest would
> be flipped to the destination, that's why the source guest can not
> be resumed. AFAICT, the page flipping migration may fail at the
> connection stage (including the exchange of pipe fd) and migration
> register stage (say any blocker like unsupported migration device),
> but it could be resumed for such situation since the memory has not
> been flipped to another content. Once the connection is successfully
> setup, it would proceed the transmission of ram page which hardly
> fails. And for the failure handling in Libvirt, ZhengSheng has proposed
> that restarts the old QEMU instead of resume. I know 'hardly' is not
> an good answer to your concern, but it is the cost of the limited
> memory IMO.
If you can flip the pages in one direction, then you can surely
flip them back in the other direction upon failure. Suggesting
people restart QEMU upon failure is just not an acceptable
"recovery" strategy, since it does not in fact recover anything
useful from the user's POV. You've lost all the state of whatever
was running.
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 :|
prev parent reply other threads:[~2013-11-22 11:37 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-21 9:11 [Qemu-devel] [PATCH 0/17 v3] Localhost migration with side channel for ram Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 01/17] QAPI: introduce migration capability unix_page_flipping Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 02/17] migration: add migrate_unix_page_flipping() Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 03/17] qmp-command.hx: add missing docs for migration capabilites Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 04/17] migration-local: add QEMUFileLocal with socket based QEMUFile Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 05/17] migration-local: introduce qemu_fopen_socket_local() Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 06/17] migration-local: add send_pipefd() Lei Li
2013-11-26 11:26 ` Paolo Bonzini
2013-11-21 9:11 ` [Qemu-devel] [PATCH 07/17] migration-local: override before_ram_iterate to send pipefd Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 08/17] add unix_msgfd_lookup() to callback get_buffer Lei Li
2013-11-26 11:30 ` Lei Li
2013-11-26 11:31 ` Paolo Bonzini
2013-11-26 14:00 ` Lei Li
2013-11-26 14:14 ` Paolo Bonzini
2013-11-21 9:11 ` [Qemu-devel] [PATCH 09/17] save_page: replace block_offset with a MemoryRegion Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 10/17] migration-local: override save_page for page transmit Lei Li
2013-11-26 11:22 ` Paolo Bonzini
2013-11-26 12:10 ` Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 11/17] savevm: adjust ram_control_save_page for page flipping Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 12/17] migration-local: override hook_ram_load Lei Li
2013-11-26 11:25 ` Paolo Bonzini
2013-11-26 12:11 ` Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 13/17] migration-unix: replace qemu_fopen_socket with qemu_fopen_socket_local Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 14/17] add new RanState RAN_STATE_MEMORY_STALE Lei Li
2013-11-26 12:28 ` Paolo Bonzini
2013-11-26 14:02 ` Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 15/17] migration-unix: page flipping support on unix outgoing Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 16/17] migration: adjust migration_thread() process for page flipping Lei Li
2013-11-26 11:32 ` Paolo Bonzini
2013-11-26 12:03 ` Lei Li
2013-11-26 12:54 ` Paolo Bonzini
2013-11-26 13:53 ` Lei Li
2013-11-26 14:11 ` Paolo Bonzini
2013-11-28 8:19 ` Lei Li
2013-11-21 9:11 ` [Qemu-devel] [PATCH 17/17] hmp: better format for info migrate_capabilities Lei Li
2013-11-21 10:19 ` [Qemu-devel] [PATCH 0/17 v3] Localhost migration with side channel for ram Daniel P. Berrange
2013-11-22 11:29 ` Lei Li
2013-11-22 11:36 ` Paolo Bonzini
2013-11-25 7:29 ` Lei Li
2013-11-25 9:48 ` Paolo Bonzini
2013-11-26 11:07 ` Lei Li
2013-11-26 11:17 ` Paolo Bonzini
2013-11-27 16:48 ` Andrea Arcangeli
2013-11-22 11:36 ` Daniel P. Berrange [this message]
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=20131122113647.GC16339@redhat.com \
--to=berrange@redhat.com \
--cc=aarcange@redhat.com \
--cc=aliguori@amazon.com \
--cc=lagarcia@br.ibm.com \
--cc=lilei@linux.vnet.ibm.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mrhines@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=rcj@linux.vnet.ibm.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).