When a guest reboots (ordinary reboots, but also via kexec), it will happily reuse any system memory, including previously inflated memory.
We could have tracking data for a pbp (PartiallyBalloonedPage). It could happen that a new inflation request from the guest will result in a discard of such a pbp, although the guest is (again) reusing some memory. We should reset the pbp on any device resets. Fixes: ed48c59875b6 ("virtio-balloon: Safely handle BALLOON_PAGE_SIZE < host page size") Cc: qemu-sta...@nongnu.org #v4.0.0 Cc: Stefan Hajnoczi <stefa...@redhat.com> Cc: David Gibson <da...@gibson.dropbear.id.au> Cc: Michael S. Tsirkin <m...@redhat.com> Cc: Igor Mammedov <imamm...@redhat.com> Signed-off-by: David Hildenbrand <da...@redhat.com> --- hw/virtio/virtio-balloon.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 84d01bceb3..9de3c030bf 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -847,6 +847,7 @@ static void virtio_balloon_device_reset(VirtIODevice *vdev) if (virtio_balloon_free_page_support(s)) { virtio_balloon_free_page_stop(s); } + virtio_balloon_reset_pbp(s); if (s->stats_vq_elem != NULL) { virtqueue_unpop(s->svq, s->stats_vq_elem, 0); -- 2.21.0