On Wed, Jan 15, 2025 at 12:19:26PM +0100, Vlastimil Babka wrote: > On 1/15/25 03:17, Alexei Starovoitov wrote: > > From: Alexei Starovoitov <ast@xxxxxxxxxx> > > [...] > > + > > + if (nid == NUMA_NO_NODE) > > + nid = numa_node_id(); > > + > > + prepare_alloc_pages(alloc_gfp, order, nid, NULL, &ac, > > + &alloc_gfp, &alloc_flags); > > + > > + /* > > + * Best effort allocation from percpu free list. > > + * If it's empty attempt to spin_trylock zone->lock. > > + */ > > + page = get_page_from_freelist(alloc_gfp, order, alloc_flags, &ac); > > What about set_page_owner() from post_alloc_hook() and it's stackdepot > saving. I guess not an issue until try_alloc_pages() gets used later, so > just a mental note that it has to be resolved before. Or is it actually safe? > stack_depot_save() does not seem safe here. > > + > > + /* Unlike regular alloc_pages() there is no __alloc_pages_slowpath(). */ > > + > > + trace_mm_page_alloc(page, order, alloc_gfp, ac.migratetype); > > + kmsan_alloc_page(page, order, alloc_gfp); > > + return page; > > +} >