Re: [PATCH v4 0/5] Allow order zero pages in page reporting
From: Michael S. Tsirkin
Date: Tue Mar 03 2026 - 12:45:32 EST
On Tue, Mar 03, 2026 at 03:30:27AM -0800, Yuvraj Sakshith wrote:
> Today, page reporting sets page_reporting_order in two ways:
>
> (1) page_reporting.page_reporting_order cmdline parameter
> (2) Driver can pass order while registering itself.
>
> In both cases, order zero is ignored by free page reporting
> because it is used to set page_reporting_order to a default
> value, like MAX_PAGE_ORDER.
>
> In some cases we might want page_reporting_order to be zero.
>
> For instance, when virtio-balloon runs inside a guest with
> tiny memory (say, 16MB), it might not be able to find a order 1 page
> (or in the worst case order MAX_PAGE_ORDER page) after some uptime.
> Page reporting should be able to return order zero pages back for
> optimal memory relinquishment.
>
> This patch changes the default fallback value from '0' to '-1' in
> all possible clients of free page reporting (hv_balloon and
> virtio-balloon) together with allowing '0' as a valid order in
> page_reporting_register().
virtio change is a technicality, so
Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> Changes in v1:
> - Introduce PAGE_REPORTING_DEFAULT_ORDER macro (initially set to 0).
> - Make use of new macro in drivers (hv_balloon and virtio-balloon)
> working with page reporting.
> - Change PAGE_REPORTING_DEFAULT_ORDER to -1 as zero is a valid
> page order that can be requested.
>
> Changes in v2:
> - Better naming. Replace PAGE_REPORTING_DEFAULT_ORDER with
> PAGE_REPORTING_ORDER_UNSPECIFIED. This takes care of
> the situation where page reporting order is not specified
> in the commandline.
> - Minor commit message changes.
>
> Changes in v3:
> - Setting page_reporting_order's initial value to
> PAGE_REPORTING_ORDER_UNSPECIFIED moved to
> PATCH #5.
>
> Changes in v4:
> - Move PAGE_REPORTING_ORDER_UNSPECIFIED's usage with
> page_reporting_order to patch #5.
>
> Yuvraj Sakshith (5):
> mm/page_reporting: add PAGE_REPORTING_ORDER_UNSPECIFIED
> virtio_balloon: set unspecified page reporting order
> hv_balloon: set unspecified page reporting order
> mm/page_reporting: change PAGE_REPORTING_ORDER_UNSPECIFIED to -1
> mm/page_reporting: change page_reporting_order to
> PAGE_REPORTING_ORDER_UNSPECIFIED
>
> drivers/hv/hv_balloon.c | 2 +-
> drivers/virtio/virtio_balloon.c | 2 ++
> include/linux/page_reporting.h | 1 +
> mm/page_reporting.c | 7 ++++---
> 4 files changed, 8 insertions(+), 4 deletions(-)
>
> --
> 2.34.1