On 1/21/23 17:50, Hyeonggon Yoo wrote: > When allocating a high-order page, separate allocation timestamp is > recorded for each sub-page resulting in different timestamp values between > them. > > This behavior is not consistent with the behavior when recording free > timestamp and caused confusion when analyzing memory dumps. Record single > timestamp for the entire allocation, aligning with the behavior for > free timestamps. > > Signed-off-by: Hyeonggon Yoo <42.hyeyoo@xxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > --- > mm/page_owner.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/page_owner.c b/mm/page_owner.c > index f0553bedb39d..80dc8f4050fa 100644 > --- a/mm/page_owner.c > +++ b/mm/page_owner.c > @@ -163,6 +163,7 @@ static inline void __set_page_owner_handle(struct page_ext *page_ext, > { > struct page_owner *page_owner; > int i; > + u64 ts_nsec = local_clock(); > > for (i = 0; i < (1 << order); i++) { > page_owner = get_page_owner(page_ext); > @@ -172,7 +173,7 @@ static inline void __set_page_owner_handle(struct page_ext *page_ext, > page_owner->last_migrate_reason = -1; > page_owner->pid = current->pid; > page_owner->tgid = current->tgid; > - page_owner->ts_nsec = local_clock(); > + page_owner->ts_nsec = ts_nsec; > strscpy(page_owner->comm, current->comm, > sizeof(page_owner->comm)); > __set_bit(PAGE_EXT_OWNER, &page_ext->flags);