[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 13/18] arch_init: adjust ram_save_setup() for mi
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 13/18] arch_init: adjust ram_save_setup() for migrate_is_localhost |
Date: |
Fri, 23 Aug 2013 11:12:11 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
Il 23/08/2013 11:00, Lei Li ha scritto:
>>> The performance assurance is very important to this feature, our goal is
>>> 100ms of downtime for a 1TB guest.
>>
>> I honestly doubt that 100ms of downtime is possible while the machine is
>> stopped. A 1TB guest has 2^28 = 268*10^6 pages, which you want to
>> process in 100*10^6 nanoseconds. Thus, your approach would require 0.4
>> nanoseconds per page, or roughly 2 clock cycles per page. This is
>> impossible without _massive_ parallelization at all levels, starting
>> from the kernel.
>>
>> Have you thought of using shared memory (with -mempath) instead of
>> vmsplice?
>
> Precisely!
>
> Well, as Anthony mentioned in the version 1[1], there has been some work
> involved
> regarding improvement of vmsplice() at kernel side by Robert Jennings[2].
Oh, finally!
> And yes, shared memory is an alternative, I think the problem with shared
> memory is
> that can't share anonymous memory. For this maybe Anthony can chime in
> as the original idea him. :-)
You could perhaps switch from normal to shared memory while the VM is
running? Either use the dirty bitmap for this, or mmap the shared
memory "in place" on top of the anonymous memory. Since it needs to be
done while the VM is stopped, you can do it perhaps 1G at a time and let
the VM run for some time before doing the next 1G.
The nice part is that because the VM is running, you can do it as slow
as you want. :) Only the final flush and device save affects downtime.
Paolo
>
> Reference links:
>
> [1] Anthony's comments:
> https://lists.gnu.org/archive/html/qemu-devel/2013-06/msg02577.html
>
> [2] vmpslice support for zero-copy gifting of pages:
> http://comments.gmane.org/gmane.linux.kernel.mm/103998
>
>>
>> Paolo
>>
>
>
- [Qemu-devel] [PATCH 16/18] migration-local: implementation of incoming part, (continued)
[Qemu-devel] [PATCH 17/18] migration: add prefix for local migration to incoming migration, Lei Li, 2013/08/21
[Qemu-devel] [PATCH 16/18] migration-local: implementation of incoming part, Lei Li, 2013/08/21
[Qemu-devel] [PATCH 18/18] hmp: better fomat for info migrate_capabilities, Lei Li, 2013/08/21