On Mon, Jun 30, 2025 at 12:14:01PM -0400, Zi Yan wrote: > On 30 Jun 2025, at 12: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? > > > >> > >> Acked-by: Zi Yan <z...@nvidia.com> > >> Acked-by: Harry Yoo <harry....@oracle.com> > >> Signed-off-by: David Hildenbrand <da...@redhat.com> > > > > On assumption this UINT_MAX stuff is sane :)) I mean this is > > straightforward I > > guess: > > This is how page type is cleared. > See: > https://elixir.bootlin.com/linux/v6.15.4/source/include/linux/page-flags.h#L1013. > > I agree with you that patch 4 should have a comment in free_pages_prepare() > about what the code is for and why UINT_MAX is used.
Or instead of comment, maybe something like this: /* Clear any page type */ static __always_inline void __ClearPageType(struct page *page) { VM_WARN_ON_ONCE_PAGE(!page_has_type(page), page); page->page_type = UINT_MAX; } in patch 4: if (unlikely(page_has_type(page))) __ClearPageType(page); -- Cheers, Harry / Hyeonggon