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

Reply via email to