I posted some RFCs for this back in December, but didn't wrap it up in time for 3.1. Posting again for inclusion in 4.0.
The virtio-balloon devices was never really thought out for cases other than 4kiB pagesize on both guest and host. It works in some cases, but in others can be ineffectual or even cause guest memory corruption. This series makes a handful of preliminary cleanups, then makes a change to safely, though not perfectly, handle cases with non 4kiB pagesizes. Changes since RFC: * Further refinement of when to issue warnings in 5/5 David Gibson (5): virtio-balloon: Remove unnecessary MADV_WILLNEED on deflate virtio-balloon: Corrections to address verification virtio-balloon: Rework ballon_page() interface virtio-balloon: Use ram_block_discard_range() instead of raw madvise() virtio-balloon: Safely handle BALLOON_PAGE_SIZE < host page size hw/virtio/virtio-balloon.c | 102 ++++++++++++++++++++++++----- include/hw/virtio/virtio-balloon.h | 3 + 2 files changed, 89 insertions(+), 16 deletions(-) -- 2.20.1