From: Avi Kivity <avi@redhat.com>
To: quintela@redhat.com
Cc: benoit.hudzia@gmail.com, aarcange@redhat.com,
Anthony Liguori <aliguori@us.ibm.com>,
kvm@vger.kernel.org, owasserm@redhat.com, stefanha@gmail.com,
t.hirofuchi@aist.go.jp, dlaor@redhat.com,
satoshi.itoh@aist.go.jp, qemu-devel@nongnu.org,
mdroth@linux.vnet.ibm.com, yoshikawa.takuya@oss.ntt.co.jp,
Isaku Yamahata <yamahata@valinux.co.jp>,
pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 00/41] postcopy live migration
Date: Fri, 08 Jun 2012 13:23:45 +0300 [thread overview]
Message-ID: <4FD1D2B1.2080108@redhat.com> (raw)
In-Reply-To: <87y5nyxg4q.fsf@elfo.mitica>
On 06/08/2012 01:16 PM, Juan Quintela wrote:
> Anthony Liguori <aliguori@us.ibm.com> wrote:
> >> TODO
> >> ====
> >> - benchmark/evaluation. Especially how async page fault affects the result.
> >
> > I don't mean to beat on a dead horse, but I really don't understand
> > the point of postcopy migration other than the fact that it's
> > possible. It's a lot of code and a new ABI in an area where we
> > already have too much difficulty maintaining our ABI.
> >
> > Without a compelling real world case with supporting benchmarks for
> > why we need postcopy and cannot improve precopy, I'm against merging
> > this.
>
> I understand easily the need/want for post-copy migration. Other thing
> is that this didn't came with benchmarks and that post-copy is
> difficult.
>
> The basic problem with precopy is that the amount of memory used by
> guest is not going to go down any time soon. The same with number of
> cores. At some point (it didn't matter if it is 16GB, 128GB or 256GB
> RAM in the guest, the same for vcpus), precopy just don't have a chance.
> And post-copy does.
>
> Once told that, we need to measure what is the time of an async page
> fault over the network. If it is too high, post copy just don't work.
>
> And no, I haven't seen any measurement that told us that this is going
> to be fast enough, but there is always hope.
At 10Gb/sec, the time to transfer one page is 4 microseconds. At
40Gb/sec this drops to a microsecond, plus the latency. This is on par
with the time to handle a write protection fault that precopy uses. But
this can *only* be achieved with RDMA, otherwise the overhead of
messaging and copying will dominate.
Note this does not mean we should postpone merging until RDMA support is
ready. However we need to make sure the kernel interface is RDMA friendly.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2012-06-08 10:24 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 9:57 [Qemu-devel] [PATCH v2 00/41] postcopy live migration Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 01/41] arch_init: export sort_ram_list() and ram_save_block() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 02/41] arch_init: export RAM_SAVE_xxx flags for postcopy Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 03/41] arch_init/ram_save: introduce constant for ram save version = 4 Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 04/41] arch_init: refactor host_from_stream_offset() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 05/41] arch_init/ram_save_live: factor out RAM_SAVE_FLAG_MEM_SIZE case Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 06/41] arch_init: refactor ram_save_block() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 07/41] arch_init/ram_save_live: factor out ram_save_limit Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 08/41] arch_init/ram_load: refactor ram_load Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 09/41] arch_init: introduce helper function to find ram block with id string Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 10/41] arch_init: simplify a bit by ram_find_block() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 11/41] arch_init: factor out counting transferred bytes Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 12/41] arch_init: factor out setting last_block, last_offset Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 13/41] exec.c: factor out qemu_get_ram_ptr() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 14/41] exec.c: export last_ram_offset() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 15/41] savevm: export qemu_peek_buffer, qemu_peek_byte, qemu_file_skip Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 16/41] savevm: qemu_pending_size() to return pending buffered size Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 17/41] savevm, buffered_file: introduce method to drain buffer of buffered file Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 18/41] QEMUFile: add qemu_file_fd() for later use Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 19/41] savevm/QEMUFile: drop qemu_stdio_fd Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 20/41] savevm/QEMUFileSocket: drop duplicated member fd Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 21/41] savevm: rename QEMUFileSocket to QEMUFileFD, socket_close to fd_close Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 22/41] savevm/QEMUFile: introduce qemu_fopen_fd Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 23/41] migration.c: remove redundant line in migrate_init() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 24/41] migration: export migrate_fd_completed() and migrate_fd_cleanup() Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 25/41] migration: factor out parameters into MigrationParams Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 26/41] buffered_file: factor out buffer management logic Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 27/41] buffered_file: Introduce QEMUFileNonblock for nonblock write Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 28/41] buffered_file: add qemu_file to read/write to buffer in memory Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 29/41] umem.h: import Linux umem.h Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 30/41] update-linux-headers.sh: teach umem.h to update-linux-headers.sh Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 31/41] configure: add CONFIG_POSTCOPY option Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 32/41] savevm: add new section that is used by postcopy Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 33/41] postcopy: introduce -postcopy and -postcopy-flags option Isaku Yamahata
2012-06-08 10:52 ` Juan Quintela
2012-06-08 16:07 ` Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 34/41] postcopy outgoing: add -p and -n option to migrate command Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 35/41] postcopy: introduce helper functions for postcopy Isaku Yamahata
2012-06-14 21:34 ` Juan Quintela
2012-06-16 9:48 ` Isaku Yamahata
2012-06-16 13:19 ` Juan Quintela
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 36/41] postcopy: implement incoming part of postcopy live migration Isaku Yamahata
2012-06-14 21:56 ` Juan Quintela
2012-06-14 21:58 ` Juan Quintela
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 37/41] postcopy: implement outgoing " Isaku Yamahata
2012-06-14 22:12 ` Juan Quintela
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 38/41] postcopy/outgoing: add forward, backward option to specify the size of prefault Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 39/41] postcopy/outgoing: implement prefault Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 40/41] migrate: add -m (movebg) option to migrate command Isaku Yamahata
2012-06-04 9:57 ` [Qemu-devel] [PATCH v2 41/41] migration/postcopy: add movebg mode Isaku Yamahata
2012-06-04 12:37 ` [Qemu-devel] [PATCH v2 00/41] postcopy live migration Anthony Liguori
2012-06-04 13:38 ` Isaku Yamahata
2012-06-05 11:23 ` Dor Laor
2012-06-07 7:46 ` Orit Wasserman
2012-06-08 10:16 ` Juan Quintela
2012-06-08 10:23 ` Avi Kivity [this message]
2012-06-14 21:07 ` Juan Quintela
2012-06-14 22:18 ` Juan Quintela
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=4FD1D2B1.2080108@redhat.com \
--to=avi@redhat.com \
--cc=aarcange@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=benoit.hudzia@gmail.com \
--cc=dlaor@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mdroth@linux.vnet.ibm.com \
--cc=owasserm@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=satoshi.itoh@aist.go.jp \
--cc=stefanha@gmail.com \
--cc=t.hirofuchi@aist.go.jp \
--cc=yamahata@valinux.co.jp \
--cc=yoshikawa.takuya@oss.ntt.co.jp \
/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).