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

Li, Liang Z
2016-08-31T06:28:10Z

Hi Michael,

I know you are very busy. If you have time, could you help to take a look at
this patch set?

Thanks!
Liang

> -----Original Message-----
> From: Li, Liang Z
> Sent: Thursday, August 18, 2016 9:06 AM
> To: Michael S. Tsirkin
> Cc: virtualization at lists.linux-foundation.org; linux-mm at kvack.org;
virtio-
> dev at lists.oasis-open.org; kvm at vger.kernel.org; qemu-devel at
nongnu.org;
> quintela at redhat.com; dgilbert at redhat.com; Hansen, Dave; linux-
> kernel at vger.kernel.org
> Subject: RE: [PATCH v3 kernel 0/7] Extend virtio-balloon for fast
(de)inflating
> & fast live migration
>
> Hi Michael,
>
> Could you help to review this version when you have time?
>
> Thanks!
> Liang
>
> > -----Original Message-----
> > From: Li, Liang Z
> > Sent: Monday, August 08, 2016 2:35 PM
> > To: linux-kernel at vger.kernel.org
> > Cc: virtualization at lists.linux-foundation.org; linux-mm at
kvack.org;
> > virtio- dev at lists.oasis-open.org; kvm at vger.kernel.org;
> > qemu-devel at nongnu.org; quintela at redhat.com; dgilbert at
redhat.com;
> > Hansen, Dave; Li, Liang Z
> > Subject: [PATCH v3 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.
> >
> > Dave Hansen suggested a new scheme to encode the data structure,
> > because of additional complexity, it's not implemented in v3.
> >
> > Changes from v2 to v3:
> >     * Change the name of 'free page' to 'unused page'.
> >     * Use the scatter & gather bitmap instead of a 1MB page
bitmap.
> >     * Fix overwriting the page bitmap after kicking.
> >     * Some of MST's comments for v2.
> >
> > 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
> >   mm: add the related functions to get unused page
> >   virtio-balloon: define feature bit and head for misc virt queue
> >   virtio-balloon: tell host vm's unused page info
> >
> >  drivers/virtio/virtio_balloon.c     | 390
> > ++++++++++++++++++++++++++++++++----
> >  include/linux/mm.h                  |   3 +
> >  include/uapi/linux/virtio_balloon.h |  41 ++++
> >  mm/page_alloc.c                     |  94 +++++++++
> >  4 files changed, 485 insertions(+), 43 deletions(-)
> >
> > --
> > 1.8.3.1