[PATCH v2 0/4] mm/mm_init: simplify deferred init of struct pages

Mike Rapoport posted 4 patches 1 month ago
.clang-format            |   1 -
include/linux/memblock.h |  22 -----
mm/memblock.c            |  64 -------------
mm/mm_init.c             | 197 +++++++++++++--------------------------
4 files changed, 65 insertions(+), 219 deletions(-)
[PATCH v2 0/4] mm/mm_init: simplify deferred init of struct pages
Posted by Mike Rapoport 1 month ago
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>

Hi,

These patches simplify deferred initialization of the memory map.

Beside nice negative diffstat I measured 3ms (55ms vs 58ms) reduction in
the initialization of deferred pages on single node system with 64GiB of
RAM.

I don't have access to large memory machines, so I'd really appreciate
testing of these patches on them to make sure there's no regression there.

v2 changes: 
* fix "sleeping function called from invalid context" bug reported by
kbuild:
https://lore.kernel.org/all/202508251443.f2d9f77f-lkp@intel.com

v1: https://lore.kernel.org/all/20250818064615.505641-1-rppt@kernel.org

I pushed the patches to memblock tree for wider testing.
https://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git/log/?h=for-next

Mike Rapoport (Microsoft) (4):
  mm/mm_init: use deferred_init_memmap_chunk() in deferred_grow_zone()
  mm/mm_init: deferred_init_memmap: use a job per zone
  mm/mm_init: drop deferred_init_maxorder()
  memblock: drop for_each_free_mem_pfn_range_in_zone_from()

 .clang-format            |   1 -
 include/linux/memblock.h |  22 -----
 mm/memblock.c            |  64 -------------
 mm/mm_init.c             | 197 +++++++++++++--------------------------
 4 files changed, 65 insertions(+), 219 deletions(-)


base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
-- 
2.50.1