[RFC for qemu v4 0/2] virtio-balloon: Add option cont-pages to set VIRTIO_BALLOON_F_CONT_PAGES

From: Hui Zhu
Date: Wed Jul 15 2020 - 22:42:43 EST


Code of current version for Linux and qemu is available in [1] and [2].
Update of this version:
1. Report continuous pages will increase the speed. So added deflate
continuous pages.
2. According to the comments from David in [3], added 2 new vqs icvq and
dcvq to get continuous pages with format 32 bits pfn and 32 bits size.

Following is the introduction of the function.
Set option cont-pages to on will open flags VIRTIO_BALLOON_F_CONT_PAGES.
qemu will get continuous pages from icvq and dcvq and do madvise
MADV_WILLNEED and MADV_DONTNEED with the pages.
Opening this flag can bring two benefits:
1. Increase the speed of balloon inflate and deflate.
2. Decrease the splitted THPs number in the host.

[1] https://github.com/teawater/linux/tree/balloon_conts
[2] https://github.com/teawater/qemu/tree/balloon_conts
[3] https://lkml.org/lkml/2020/5/13/1211

Hui Zhu (2):
virtio_balloon: Add cont-pages and icvq
virtio_balloon: Add dcvq to deflate continuous pages

hw/virtio/virtio-balloon.c | 92 +++++++++++++++---------
include/hw/virtio/virtio-balloon.h | 2
include/standard-headers/linux/virtio_balloon.h | 1
3 files changed, 63 insertions(+), 32 deletions(-)