[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migr
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migration |
Date: |
Mon, 31 Oct 2016 00:05:13 +0200 |
On Fri, Oct 21, 2016 at 02:48:18PM +0800, Liang Li wrote:
> This patch set intends to do two optimizations, one is to speed up
> the (de)inflating process of virtio balloon, and another one which
> is to speed up the live migration process. We put them together
> because both of them are required to change the virtio balloon spec.
>
> The main idea of speeding up the (de)inflating process is to use
> bitmap to send the page information to host instead of the PFNs, to
> reduce the overhead of virtio data transmission, address translation
> and madvise(). This can help to improve the performance by about 85%.
>
> The idea of speeding up live migration is to skip process guest's
> free pages in the first round of data copy, to reduce needless
> data processing, this can help to save quite a lot of CPU cycles and
> network bandwidth. We get guest's free page information through the
> virt queue of virtio-balloon, and filter out these free pages during
> live migration. For an idle 8GB guest, this can help to shorten the
> total live migration time from 2Sec to about 500ms in the 10Gbps
> network environment.
So it looks like the host/guest interface here is still in flux,
I think it's best to defer this to QEMU 2.9.
If you think otherwise, pls let me know.
> Changes from v2 to v3:
> * Merged two patches for kernel head file updating into one
> * Removed one patch which was unrelated with this feature
> * Removed the patch to migrate the vq elem, use a new way instead
>
> Changes from v1 to v2:
> * Abandon the patch for dropping page cache.
> * Get a struct from vq instead of separate variables.
> * Use two separate APIs to request free pages and query the status.
> * Changed the virtio balloon interface.
> * Addressed some of the comments of v1.
>
> Liang Li (6):
> virtio-balloon: update linux head file
> virtio-balloon: speed up inflating & deflating process
> balloon: get free page info from guest
> bitmap: Add a new bitmap_move function
> kvm: Add two new arch specific functions
> migration: skip free pages during live migration
>
> balloon.c | 47 +++-
> hw/virtio/virtio-balloon.c | 273
> ++++++++++++++++++++++--
> include/hw/virtio/virtio-balloon.h | 18 +-
> include/qemu/bitmap.h | 13 ++
> include/standard-headers/linux/virtio_balloon.h | 41 ++++
> include/sysemu/balloon.h | 18 +-
> include/sysemu/kvm.h | 18 ++
> migration/ram.c | 86 ++++++++
> target-arm/kvm.c | 14 ++
> target-i386/kvm.c | 37 ++++
> target-mips/kvm.c | 14 ++
> target-ppc/kvm.c | 14 ++
> target-s390x/kvm.c | 14 ++
> 13 files changed, 581 insertions(+), 26 deletions(-)
>
> --
> 1.8.3.1
- [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migration, Liang Li, 2016/10/21
- [Qemu-devel] [PATCH qemu v3 2/6] virtio-balloon: speed up inflating & deflating process, Liang Li, 2016/10/21
- [Qemu-devel] [PATCH qemu v3 3/6] balloon: get free page info from guest, Liang Li, 2016/10/21
- [Qemu-devel] [PATCH qemu v3 5/6] kvm: Add two new arch specific functions, Liang Li, 2016/10/21
- [Qemu-devel] [PATCH qemu v3 1/6] virtio-balloon: update linux head file, Liang Li, 2016/10/21
- [Qemu-devel] [PATCH qemu v3 4/6] bitmap: Add a new bitmap_move function, Liang Li, 2016/10/21
- [Qemu-devel] [PATCH qemu v3 6/6] migration: skip free pages during live migration, Liang Li, 2016/10/21
- Re: [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migration, no-reply, 2016/10/21
- Re: [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migration, no-reply, 2016/10/21
- Re: [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migration,
Michael S. Tsirkin <=