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:
