On Tue, May 25, 2021 at 01:39:28AM +0200, Vlastimil Babka wrote: > When we allocate slab object from a newly acquired page (from node's partial > list or page allocator), we usually also retain the page as a new percpu slab. > There are two exceptions - when pfmemalloc status of the page doesn't match our > gfp flags, or when the cache has debugging enabled. > > The current code for these decisions is not easy to follow, so restructure it > and add comments. No functional change. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> > > <SNIP> > > + if (unlikely(!pfmemalloc_match(page, gfpflags))) > + /* > + * For !pfmemalloc_match() case we don't load freelist so that > + * we don't make further mismatched allocations easier. > + */ > + goto return_single; > + > + goto load_freelist; > + > +return_single: > This looked odd to me but I see other stuff goes between the two goto's later in the series so Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> -- Mel Gorman SUSE Labs