On Tue, Feb 06, 2018 at 07:08:16PM +0800, Wei Wang wrote: > This is the deivce part implementation to add a new feature, > VIRTIO_BALLOON_F_FREE_PAGE_HINT to the virtio-balloon device. The device > receives the guest free page hints from the driver and clears the > corresponding bits in the dirty bitmap, so that those free pages are > not transferred by the migration thread to the destination. > > Please see the driver patch link for test results: > https://lkml.org/lkml/2018/2/4/60 > > ChangeLog: > v1->v2: > 1) virtio-balloon > - use subsections to save free_page_report_cmd_id; > - poll the free page vq after sending a cmd id to the driver; > - change the free page vq size to VIRTQUEUE_MAX_SIZE; > - virtio_balloon_poll_free_page_hints: handle the corner case > that the free page block reported from the driver may cross > the RAMBlock boundary. > 2) migration/ram.c > - use balloon_free_page_poll to start the optimization > > Wei Wang (3): > virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT > migration: use the free page reporting feature from balloon > virtio-balloon: add a timer to limit the free page report waiting time
This feature needs in-tree documentation about possible ways to use it, tradeoffs involved etc. > balloon.c | 39 ++-- > hw/virtio/virtio-balloon.c | 227 > ++++++++++++++++++++++-- > hw/virtio/virtio-pci.c | 3 + > include/hw/virtio/virtio-balloon.h | 15 +- > include/migration/misc.h | 3 + > include/standard-headers/linux/virtio_balloon.h | 7 + > include/sysemu/balloon.h | 12 +- > migration/ram.c | 34 +++- > 8 files changed, 307 insertions(+), 33 deletions(-) > > -- > 1.8.3.1