Re: [PATCH v1 19/29] mm: stop storing migration_ops in page->mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <ziy@xxxxxxxxxx>
> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
> ---

> +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

?

> +	return NULL;
> +}
> +
>  /**
>   * isolate_movable_ops_page - isolate a movable_ops page for migration
>   * @page: The page.

Otherwise LGTM.

-- 
Cheers,
Harry / Hyeonggon




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux