Add a module parameter host_zeroes_pages to opt in to the pre-zeroed page optimization. A proper virtio feature flag is needed before this can be merged.
insmod virtio_balloon.ko host_zeroes_pages=1 Signed-off-by: Michael S. Tsirkin <[email protected]> Assisted-by: Claude:claude-opus-4-6 --- drivers/virtio/virtio_balloon.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index d1fbc8fe8470..5d37196daa75 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -19,6 +19,11 @@ #include <linux/mm.h> #include <linux/page_reporting.h> +static bool host_zeroes_pages; +module_param(host_zeroes_pages, bool, 0644); +MODULE_PARM_DESC(host_zeroes_pages, + "Host zeroes reported pages, skip guest re-zeroing"); + /* * Balloon device works in 4K page units. So each page is pointed to by * multiple balloon pages. All memory counters in this driver are in balloon @@ -1039,6 +1044,8 @@ static int virtballoon_probe(struct virtio_device *vdev) vb->pr_dev_info.order = 5; #endif + /* TODO: needs a virtio feature flag */ + vb->pr_dev_info.host_zeroes_pages = host_zeroes_pages; err = page_reporting_register(&vb->pr_dev_info); if (err) goto out_unregister_oom; -- MST

