Take over this work from Liang. This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 1) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Please check patch 0003 for more details about optimization 1). For an idle guest with 8GB RAM, optimization 2) can help shorten the total live migration time from 2Sec to about 500ms in 10Gbps network environment. For a guest with quite a lot of page cache and little unused pages, it's possible to let the guest drop its page cache before live migration, this case can benefit from this new feature too. Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Cc: Amit Shah <amit.shah@xxxxxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxx> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: Liang Li <liliang324@xxxxxxxxx> Cc: Wei Wang <wei.w.wang@xxxxxxxxx> Liang Li (5): virtio-balloon: rework deflate to add page to a list virtio-balloon: VIRTIO_BALLOON_F_CHUNK_TRANSFER virtio-balloon: implementation of VIRTIO_BALLOON_F_CHUNK_TRANSFER virtio-balloon: define flags and head for host request vq This patch contains two parts: drivers/virtio/virtio_balloon.c | 510 ++++++++++++++++++++++++++++++++---- include/linux/mm.h | 3 + include/uapi/linux/virtio_balloon.h | 34 +++ mm/page_alloc.c | 120 +++++++++ 4 files changed, 620 insertions(+), 47 deletions(-) -- 2.7.4