On Wed, Jul 02, 2025 at 01:04:05PM +0200, David Hildenbrand wrote: > On 02.07.25 12:34, Harry Yoo wrote: > > On Mon, Jun 30, 2025 at 03:00:00PM +0200, David Hildenbrand wrote: > > > ... instead, look them up statically based on the page type. Maybe in the > > > future we want a registration interface? At least for now, it can be > > > easily handled using the two page types that actually support page > > > migration. > > > > > > The remaining usage of page->mapping is to flag such pages as actually > > > being movable (having movable_ops), which we will change next. > > > > > > Reviewed-by: Zi Yan <z...@nvidia.com> > > > Signed-off-by: David Hildenbrand <da...@redhat.com> > > > --- > > > > > +static const struct movable_operations *page_movable_ops(struct page > > > *page) > > > +{ > > > + VM_WARN_ON_ONCE_PAGE(!page_has_movable_ops(page), page); > > > + > > > + /* > > > + * If we enable page migration for a page of a certain type by marking > > > + * it as movable, the page type must be sticky until the page gets freed > > > + * back to the buddy. > > > + */ > > > +#ifdef CONFIG_BALLOON_COMPACTION > > > + if (PageOffline(page)) > > > + /* Only balloon compaction sets PageOffline pages movable. */ > > > + return &balloon_mops; > > > +#endif /* CONFIG_BALLOON_COMPACTION */ > > > +#if defined(CONFIG_ZSMALLOC) && defined(CONFIG_COMPACTION) > > > + if (PageZsmalloc(page)) > > > + return &zsmalloc_mops; > > > +#endif /* defined(CONFIG_ZSMALLOC) && defined(CONFIG_COMPACTION) */ > > > > What happens if: > > CONFIG_ZSMALLOC=y > > CONFIG_TRANSPARENT_HUGEPAGE=n > > CONFIG_COMPACTION=n > > CONFIG_MIGRATION=y > > Pages are never allocated from ZONE_MOVABLE/CMA and
I don't understand how that's true, neither zram nor zsmalloc clears __GFP_MOVABLE when CONFIG_COMPACTION=n? ...Or perhaps I'm still missing some pieces ;) > are not marked as having movable_ops, so we never end up in this function. Right. > See how zsmalloc.c deals with CONFIG_COMPACTION, especially how > SetZsPageMovable() is a NOP without it. Right. Now I see what I was missing in the previous reply. Thanks! Please feel free to add: Reviewed-by: Harry Yoo <harry....@oracle.com> -- Cheers, Harry / Hyeonggon