[PATCH v4 0/5] Allow order zero pages in page reporting
From: Yuvraj Sakshith
Date: Tue Mar 03 2026 - 06:45:37 EST
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().
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