[PATCH v1 05/29] mm/balloon_compaction: make PageOffline sticky until the page is freed

David Hildenbrand david at redhat.com
Tue Jul 1 18:21:34 AEST 2025


On 30.06.25 18:01, Lorenzo Stoakes wrote:
> On Mon, Jun 30, 2025 at 02:59:46PM +0200, David Hildenbrand wrote:
>> Let the page freeing code handle clearing the page type.
> 
> Why is this advantageous? We want to keep the page marked offline for longer?

Less code? ;)

I will add:

"Being able to identify balloon pages until actually freed is a 
requirement for upcoming movable_ops migration changes."

Note that the documentation is extended in patch #27 to mention that.

> 
>>
>> Acked-by: Zi Yan <ziy at nvidia.com>
>> Acked-by: Harry Yoo <harry.yoo at oracle.com>
>> Signed-off-by: David Hildenbrand <david at redhat.com>
> 
> On assumption this UINT_MAX stuff is sane :)) I mean this is straightforward I
> guess:
 > > Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes at oracle.com>
> 
>> ---
>>   include/linux/balloon_compaction.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/linux/balloon_compaction.h b/include/linux/balloon_compaction.h
>> index b9f19da37b089..bfc6e50bd004b 100644
>> --- a/include/linux/balloon_compaction.h
>> +++ b/include/linux/balloon_compaction.h
>> @@ -140,7 +140,7 @@ static inline void balloon_page_finalize(struct page *page)
>>   		__ClearPageMovable(page);
>>   		set_page_private(page, 0);
>>   	}
>> -	__ClearPageOffline(page);
>> +	/* PageOffline is sticky until the page is freed to the buddy. */
> 
> OK so we are relying on this UINT_MAX thing in free_pages_prepare() to handle this.

Yes. Resetting the page_type -> _mapcount to the initial value -1.

-- 
Cheers,

David / dhildenb



More information about the Linuxppc-dev mailing list