RFC mm: Deferred page init improvements
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest5 patches 0 repliesNew
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | mm: Use mm_zero_struct_page from SPARC on all 64b architecturesarch/ include/ | +33 | 0 replies | |
| 2/5 | mm: Drop meminit_pfn_in_nid as it is redundantmm/ | +14 | 0 replies | |
| 3/5 | mm: Use memblock/zone specific iterator for handling deferred page initinclude/ mm/ mm/ | +242 | 0 replies | |
| 4/5 | mm: Move hot-plug specific memory init into separate functions and optimizemm/ | +140 | 0 replies | |
| 5/5 | mm: Use common iterator for deferred_init_pages and deferred_free_pagesmm/ | +65 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
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(-)
--