[PATCH v1 22/29] mm/page-flags: rename PAGE_MAPPING_MOVABLE to PAGE_MAPPING_ANON_KSM

Lorenzo Stoakes lorenzo.stoakes at oracle.com
Tue Jul 1 22:54:44 AEST 2025


On Mon, Jun 30, 2025 at 03:00:03PM +0200, David Hildenbrand wrote:
> KSM is the only remaining user, let's rename the flag. While at it,
> adjust to remaining page -> folio in the doc.

Hm I wonder if we could just ideally have this be a separate flag rather than a
bitwise combination, however I bet there's code that does somehow rely on this.

I know for sure there's code that has to do a folio_test_ksm() on something
folio_test_anon()'d because the latter isn't sufficient.

But this is one for the future I guess :)

Nice: re change to folio, that is a nice cleanup based on fact you've now made
the per-page mapping op stuff not be part of this.

>
> Reviewed-by: Zi Yan <ziy at nvidia.com>
> Signed-off-by: David Hildenbrand <david at redhat.com>

LGTM, so:

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes at oracle.com>

> ---
>  include/linux/page-flags.h | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
> index aa48b05536bca..abed972e902e1 100644
> --- a/include/linux/page-flags.h
> +++ b/include/linux/page-flags.h
> @@ -697,10 +697,10 @@ PAGEFLAG_FALSE(VmemmapSelfHosted, vmemmap_self_hosted)
>   * folio->mapping points to its anon_vma, not to a struct address_space;
>   * with the PAGE_MAPPING_ANON bit set to distinguish it.  See rmap.h.
>   *
> - * On an anonymous page in a VM_MERGEABLE area, if CONFIG_KSM is enabled,
> - * the PAGE_MAPPING_MOVABLE bit may be set along with the PAGE_MAPPING_ANON
> + * On an anonymous folio in a VM_MERGEABLE area, if CONFIG_KSM is enabled,
> + * the PAGE_MAPPING_ANON_KSM bit may be set along with the PAGE_MAPPING_ANON
>   * bit; and then folio->mapping points, not to an anon_vma, but to a private
> - * structure which KSM associates with that merged page.  See ksm.h.
> + * structure which KSM associates with that merged folio.  See ksm.h.
>   *
>   * Please note that, confusingly, "folio_mapping" refers to the inode
>   * address_space which maps the folio from disk; whereas "folio_mapped"
> @@ -714,9 +714,9 @@ PAGEFLAG_FALSE(VmemmapSelfHosted, vmemmap_self_hosted)
>   * See mm/slab.h.
>   */
>  #define PAGE_MAPPING_ANON	0x1
> -#define PAGE_MAPPING_MOVABLE	0x2
> -#define PAGE_MAPPING_KSM	(PAGE_MAPPING_ANON | PAGE_MAPPING_MOVABLE)
> -#define PAGE_MAPPING_FLAGS	(PAGE_MAPPING_ANON | PAGE_MAPPING_MOVABLE)
> +#define PAGE_MAPPING_ANON_KSM	0x2
> +#define PAGE_MAPPING_KSM	(PAGE_MAPPING_ANON | PAGE_MAPPING_ANON_KSM)
> +#define PAGE_MAPPING_FLAGS	(PAGE_MAPPING_ANON | PAGE_MAPPING_ANON_KSM)
>
>  static __always_inline bool folio_mapping_flags(const struct folio *folio)
>  {
> --
> 2.49.0
>


More information about the Linuxppc-dev mailing list