On 07.09.20 18:36, Vlastimil Babka wrote: > As per the discussions [1] [2] this is an attempt to implement David's > suggestion that page isolation should disable pcplists to avoid races. This is > done without extra checks in fast paths, as I mentioned should be possible in > the discussion, and explained in patch 5. Patches 1-4 are preparatory cleanups. > > Note this is untested RFC for now. Based on v5.9-rc4 plus Pavel's patch [2] > (slated as a quick fix for mainline+stable). > > [1] https://lore.kernel.org/linux-mm/20200901124615.137200-1-pasha.tatashin@xxxxxxxxxx/ > [2] https://lore.kernel.org/linux-mm/20200903140032.380431-1-pasha.tatashin@xxxxxxxxxx/ > > Vlastimil Babka (5): > mm, page_alloc: clean up pageset high and batch update > mm, page_alloc: calculate pageset high and batch once per zone > mm, page_alloc(): remove setup_pageset() > mm, page_alloc: cache pageset high and batch in struct zone > mm, page_alloc: disable pcplists during page isolation > > include/linux/gfp.h | 1 + > include/linux/mmzone.h | 2 + > mm/internal.h | 4 ++ > mm/memory_hotplug.c | 24 +++---- > mm/page_alloc.c | 138 ++++++++++++++++++++++------------------- > mm/page_isolation.c | 45 +++++++++++--- > 6 files changed, 127 insertions(+), 87 deletions(-) > Thanks for looking into this! Just a heads-up that -mm and -next contain some changes to memory hotplug code, whereby new pageblocks start out in MIGRATE_ISOLATE when onlining, until we're done with the heavy lifting. Might require some tweaks, similar to when isolating pageblocks. Will dive into this in the following days. What's you're general perception of performance aspects? -- Thanks, David / dhildenb