Re: [RFC 0/5] disable pcplists during page isolation

From: David Hildenbrand
Date: Tue Sep 08 2020 - 14:29:36 EST


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