On 6/30/26 03:53, Ye Liu wrote:
> The last_migrate_reason field uses -1 as a sentinel value to mean "no
> migration has happened".  Replace the four bare -1 occurrences by
> adding a proper MR_NEVER member to enum migrate_reason, defining a
> corresponding "never_migrated" string in the MIGRATE_REASON trace
> macro, and removing the local MIGRATE_REASON_NONE define.
> 
> No functional change.
> 
> Signed-off-by: Ye Liu <[email protected]>

Reviewed-by: Vlastimil Babka (SUSE) <[email protected]>

> ---
>  include/linux/migrate_mode.h   | 1 +
>  include/trace/events/migrate.h | 3 ++-
>  mm/page_owner.c                | 8 ++++----
>  3 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/include/linux/migrate_mode.h b/include/linux/migrate_mode.h
> index 265c4328b36a..05102d4d2490 100644
> --- a/include/linux/migrate_mode.h
> +++ b/include/linux/migrate_mode.h
> @@ -25,6 +25,7 @@ enum migrate_reason {
>       MR_LONGTERM_PIN,
>       MR_DEMOTION,
>       MR_DAMON,
> +     MR_NEVER,               /* page has never been migrated */
>       MR_TYPES
>  };
>  
> diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h
> index cd01dd7b3640..11bc0aa14c7e 100644
> --- a/include/trace/events/migrate.h
> +++ b/include/trace/events/migrate.h
> @@ -23,7 +23,8 @@
>       EM( MR_CONTIG_RANGE,    "contig_range")                 \
>       EM( MR_LONGTERM_PIN,    "longterm_pin")                 \
>       EM( MR_DEMOTION,        "demotion")                     \
> -     EMe(MR_DAMON,           "damon")
> +     EM( MR_DAMON,           "damon")                        \
> +     EMe(MR_NEVER,           "never_migrated")
>  
>  /*
>   * First define the enums in the above macros to be exported to userspace
> diff --git a/mm/page_owner.c b/mm/page_owner.c
> index 342549891a8d..c2f43ab860eb 100644
> --- a/mm/page_owner.c
> +++ b/mm/page_owner.c
> @@ -339,7 +339,7 @@ noinline void __set_page_owner(struct page *page, 
> unsigned short order,
>       depot_stack_handle_t handle;
>  
>       handle = save_stack(gfp_mask);
> -     __update_page_owner_handle(page, handle, order, gfp_mask, -1,
> +     __update_page_owner_handle(page, handle, order, gfp_mask, MR_NEVER,
>                                  ts_nsec, current->pid, current->tgid,
>                                  current->comm);
>       inc_stack_record_count(handle, gfp_mask, 1 << order);
> @@ -596,7 +596,7 @@ print_page_owner(char __user *buf, size_t count, unsigned 
> long pfn,
>       if (ret >= count)
>               goto err;
>  
> -     if (page_owner->last_migrate_reason != -1) {
> +     if (page_owner->last_migrate_reason != MR_NEVER) {
>               ret += scnprintf(kbuf + ret, count - ret,
>                       "Page has been migrated, last migrate reason: %s\n",
>                       migrate_reason_names[page_owner->last_migrate_reason]);
> @@ -667,7 +667,7 @@ void __dump_page_owner(const struct page *page)
>               stack_depot_print(handle);
>       }
>  
> -     if (page_owner->last_migrate_reason != -1)
> +     if (page_owner->last_migrate_reason != MR_NEVER)
>               pr_alert("page has been migrated, last migrate reason: %s\n",
>                       migrate_reason_names[page_owner->last_migrate_reason]);
>       page_ext_put(page_ext);
> @@ -826,7 +826,7 @@ static void init_pages_in_zone(struct zone *zone)
>  
>                       /* Found early allocated page */
>                       __update_page_owner_handle(page, early_handle, 0, 0,
> -                                                -1, local_clock(), 
> current->pid,
> +                                                MR_NEVER, local_clock(), 
> current->pid,
>                                                  current->tgid, 
> current->comm);
>                       count++;
>  ext_put_continue:


Reply via email to