RE: [PATCH v2 kernel 0/7] Extend virtio-balloon for fast(de)inflating & fast live migration

From: Li, Liang Z
Date: Thu Jul 21 2016 - 04:14:20 EST


Hi Michael,

If you have time, could you help to review this patch set?

Thanks!
Liang


> -----Original Message-----
> From: Li, Liang Z
> Sent: Wednesday, June 29, 2016 6:32 PM
> To: mst@xxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx; virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx;
> kvm@xxxxxxxxxxxxxxx; qemu-devel@xxxxxxxxxx; virtio-dev@xxxxxxxxxxxx
> open.org; dgilbert@xxxxxxxxxx; quintela@xxxxxxxxxx; Li, Liang Z
> Subject: [PATCH v2 kernel 0/7] Extend virtio-balloon for fast (de)inflating &
> fast live migration
>
> This patch set contains two parts of changes to the virtio-balloon.
>
> One is the change for speeding up the inflating & deflating process, the main
> idea of this optimization 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%.
>
> Another change is for speeding up live migration. By skipping 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
> put guest's free page information in bitmap and send it to host with the virt
> queue of virtio-balloon. 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.
>
>
> Changes from v1 to v2:
> * Abandon the patch for dropping page cache.
> * Put some structures to uapi head file.
> * Use a new way to determine the page bitmap size.
> * Use a unified way to send the free page information with the bitmap
> * Address the issues referred in MST's comments
>
> Liang Li (7):
> virtio-balloon: rework deflate to add page to a list
> virtio-balloon: define new feature bit and page bitmap head
> mm: add a function to get the max pfn
> virtio-balloon: speed up inflate/deflate process
> virtio-balloon: define feature bit and head for misc virt queue
> mm: add the related functions to get free page info
> virtio-balloon: tell host vm's free page info
>
> drivers/virtio/virtio_balloon.c | 306
> +++++++++++++++++++++++++++++++-----
> include/uapi/linux/virtio_balloon.h | 41 +++++
> mm/page_alloc.c | 52 ++++++
> 3 files changed, 359 insertions(+), 40 deletions(-)
>
> --
> 1.8.3.1