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 <[email protected]> > 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

