Mark deflated pages as pre-zeroed when host_zeroes_pages is set. Use put_page_hint() with PGHINT_ZEROED during deflation so the freed pages carry PG_zeroed in the buddy allocator, allowing the next allocation to skip redundant zeroing.
Signed-off-by: Michael S. Tsirkin <[email protected]> Assisted-by: Claude:claude-opus-4-6 Assisted-by: cursor-agent:GPT-5.4-xhigh --- drivers/virtio/virtio_balloon.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 2e524bf6f934..9b35203f579d 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -299,7 +299,10 @@ static void release_pages_balloon(struct virtio_balloon *vb, list_for_each_entry_safe(page, next, pages, lru) { list_del(&page->lru); - put_page(page); /* balloon reference */ + if (host_zeroes_pages) + put_page_hint(page, PGHINT_ZEROED); + else + put_page(page); } } -- MST

