On 02/07/2018 08:02 AM, Michael S. Tsirkin wrote:
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.
OK. I plan to add the documentation in later versions after we mostly
finalize the QEMU part design.
Best,
Wei