Skip to content

RFC mm: Deferred page init improvements

Alexander Duyck linux-mm lkml sparclinux 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest5 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5mm: Use mm_zero_struct_page from SPARC on all 64b architecturesarch/sparc/include/asm/pgtable_64.h include/linux/mm.h+33 -300 replies
2/5mm: Drop meminit_pfn_in_nid as it is redundantmm/page_alloc.c+14 -360 replies
3/5mm: Use memblock/zone specific iterator for handling deferred page initinclude/linux/memblock.h mm/memblock.c mm/page_alloc.c+242 -550 replies
4/5mm: Move hot-plug specific memory init into separate functions and optimizemm/page_alloc.c+140 -730 replies
5/5mm: Use common iterator for deferred_init_pages and deferred_free_pagesmm/page_alloc.c+65 -690 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC mm PATCH 0/5] mm: Deferred page init improvements

This patchset is essentially a refactor of the page initialization logic to provide for better code reuse while providing a significant improvement in deferred page initialization performance.

In my testing I have seen a 3:1 reduction in the time needed for deferred memory initialization on two different x86_64 based test systems I have.

In addition this provides a very slight improvement for the hotplug memory initialization, although the improvement doesn't exceed 5% from what I can tell and that is to be expected since most of the changes related to hotplug initialization are just code clean-up to allow for reuse. I had been considering using a large memset for the entire pageblock I was initializing which showed a significant speedup for persistent memory init however that showed no improvements to a slight regression for regular deferred initialization of standard memory.

---

Alexander Duyck (5):
mm: Use mm_zero_struct_page from SPARC on all 64b architectures
mm: Drop meminit_pfn_in_nid as it is redundant
mm: Use memblock/zone specific iterator for handling deferred page init
mm: Move hot-plug specific memory init into separate functions and optimize
mm: Use common iterator for deferred_init_pages and deferred_free_pages

 arch/sparc/include/asm/pgtable_64.h |   30 --
 include/linux/memblock.h            |   58 ++++
 include/linux/mm.h                  |   33 ++
 mm/memblock.c                       |   63 ++++
 mm/page_alloc.c                     |  555 +++++++++++++++++++++--------------
 5 files changed, 485 insertions(+), 254 deletions(-)

--