Re: [PATCH v1 19/29] mm: stop storing migration_ops in page->mapping
From: Harry Yoo <hidden>
Date: 2025-07-02 11:45:06
Also in:
linux-doc, linux-fsdevel, linux-mm, lkml, virtualization
On Wed, Jul 02, 2025 at 01:04:05PM +0200, David Hildenbrand wrote:
On 02.07.25 12:34, Harry Yoo wrote:quoted
On Mon, Jun 30, 2025 at 03:00:00PM +0200, David Hildenbrand wrote:quoted
... 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 <ziy@nvidia.com> Signed-off-by: David Hildenbrand <redacted> ---quoted
+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=yPages 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 <redacted> -- Cheers, Harry / Hyeonggon