[PATCH v2 0/5] Fix the incorrect memmep defer init handling and do some cleanup
From: Baoquan He
Date: Sun Dec 20 2020 - 03:31:10 EST
VMware reported the performance regression during memmap_init() invocation.
And they bisected to commit 73a6e474cb376 ("mm: memmap_init: iterate over
memblock regions rather that check each PFN") causing it.
https://lore.kernel.org/linux-mm/DM6PR05MB52921FF90FA01CC337DD23A1A4080@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
After investigation, it's caused by incorrect memmap init defer handling
in memmap_init_zone() after commit 73a6e474cb376. The current
memmap_init_zone() only handle one memory region of one zone, while
memmap_init() iterates over all its memory regions and pass them one by
one into memmap_init_zone() to handle.
So in this patchset, patch 1/5 fixes the bug observed by VMware. Patch
2~5/5 clean up codes.
accordingly.
VMware helped do the testing for the patch 1 of v1 version which was based
on master branch of Linus's tree on their VMware ESI platform, while the
patch 1 is not changed in functionality in v2. And I haven't got a
ia64 machine to compile or test, will really appreciate if anyone can help
compile this patchset on one. This patchset is based on the latest next/master,
only did the basic test.
Baoquan He (5):
mm: memmap defer init dosn't work as expected
mm: rename memmap_init() and memmap_init_zone()
mm: simplify parater of function memmap_init_zone()
mm: simplify parameter of setup_usemap()
mm: remove unneeded local variable in free_area_init_core
arch/ia64/include/asm/pgtable.h | 3 +-
arch/ia64/mm/init.c | 16 +++++----
include/linux/mm.h | 5 +--
mm/memory_hotplug.c | 2 +-
mm/page_alloc.c | 60 ++++++++++++++++-----------------
5 files changed, 43 insertions(+), 43 deletions(-)
--
2.17.2