[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/15] Make migration work with hotplug
From: |
Alex Williamson |
Subject: |
Re: [Qemu-devel] [PATCH 00/15] Make migration work with hotplug |
Date: |
Thu, 24 Jun 2010 09:23:03 -0600 |
On Thu, 2010-06-24 at 09:04 -0600, Alex Williamson wrote:
> On Thu, 2010-06-24 at 15:02 +0900, Yoshiaki Tamura wrote:
> >
> > Hi Alex,
> >
> > Is there additional overhead to save rams introduce by this series?
> > If so, how much?
>
> Yes, there is overhead, but it's typically quite small. If I migrate a
> 1G VM immediately after I boot to a login prompt (lots of zero pages), I
> get an overhead of 0.000076%. That's only 226 extra bytes over the
> 297164995 bytes otherwise transferred. If I build a kernel on the guest
> and migrate during the compilation, the overhead is 0.000019%. The
> overhead is tiny largely due to patch 12/15, which avoids sending the
> block name if we're working within the same block as sent previously.
> If I disable this optimization, the overhead goes up to 0.93% after boot
> and 0.26% during a kernel compile.
>
> Note that an x86 VM does a separate qemu_ram_alloc for memory above 4G,
> which means in bigger VMs we may end up needing to resend the ramblock
> name once in a while as we bounce between above and below 4G. Worst
> case for this could match the 0.26% above, but in my testing during a
> kernel compile, this seems to increase the overhead to 0.000026% on a 6G
> VM. I don't see any reason why we couldn't allocate all the ram in a
> single qemu_ram_alloc call, so I'll add another patch to make that
> change (which will also shorten the name to "pc.ram" for even less
> overhead ;). Thanks,
FWIW, with this change, my migration during kernel compile on the 6G VM
seems to be running just at 0.000019%-0.000020%, so that eliminates the
penalty for bigger memory VMs. Thanks,
Alex
- [Qemu-devel] [PATCH 09/15] ramblocks: Make use of DeviceState pointer and BusInfo.get_dev_path, (continued)
- [Qemu-devel] [PATCH 09/15] ramblocks: Make use of DeviceState pointer and BusInfo.get_dev_path, Alex Williamson, 2010/06/24
- [Qemu-devel] [PATCH 11/15] savevm: Use RAM blocks for basis of migration, Alex Williamson, 2010/06/24
- [Qemu-devel] [PATCH 12/15] savevm: Create a new continue flag to avoid resending block name, Alex Williamson, 2010/06/24
- [Qemu-devel] [PATCH 13/15] qemu_ram_free: Implement it, Alex Williamson, 2010/06/24
- [Qemu-devel] [PATCH 14/15] pci: Free the space allocated for the option rom on removal, Alex Williamson, 2010/06/24
- [Qemu-devel] [PATCH 15/15] ramblocks: No more being lazy about duplicate names, Alex Williamson, 2010/06/24
- Re: [Qemu-devel] [PATCH 00/15] Make migration work with hotplug, Yoshiaki Tamura, 2010/06/24
- [Qemu-devel] [PATCH v2 00/16] Make migration work with hotplug, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 16/16] ramblocks: No more being lazy about duplicate names, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 14/16] qemu_ram_free: Implement it, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 15/16] pci: Free the space allocated for the option rom on removal, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 13/16] savevm: Create a new continue flag to avoid resending block name, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 12/16] savevm: Use RAM blocks for basis of migration, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 10/16] ramblocks: Make use of DeviceState pointer and BusInfo.get_dev_path, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 11/16] savevm: Migrate RAM based on name/offset, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 07/16] eepro100: Add a dev field to eeprom new/free functions, Alex Williamson, 2010/06/25