This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Changes: v8->v9: 1) Split the two new features, VIRTIO_BALLOON_F_BALLOON_CHUNKS and VIRTIO_BALLOON_F_MISC_VQ, which were mixed together in the previous implementation; 2) Simpler function to get the free page block. v7->v8: 1) Use only one chunk format, instead of two. 2) re-write the virtio-balloon implementation patch. 3) commit changes 4) patch re-org Liang Li (1): virtio-balloon: deflate via a page list Wei Wang (4): virtio-balloon: VIRTIO_BALLOON_F_BALLOON_CHUNKS mm: function to offer a page block on the free list mm: export symbol of next_zone and first_online_pgdat virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ drivers/virtio/virtio_balloon.c | 615 +++++++++++++++++++++++++++++++++--- include/linux/mm.h | 3 + include/uapi/linux/virtio_balloon.h | 21 ++ mm/mmzone.c | 2 + mm/page_alloc.c | 87 +++++ 5 files changed, 678 insertions(+), 50 deletions(-) -- 2.7.4