Skip to content

Address issues slowing persistent memory initialization

Alexander Duyck linux-mm linux-nvdimm lkml nvdimm 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest4 patches 70 repliesIn review
  2. v45 patches 16 repliesSuperseded

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4mm: Remove now defunct NO_BOOTMEM from depends list for deferred initarch/csky/Kconfig mm/Kconfig+0 -21 reply
2/4mm: Provide kernel parameter to allow disabling page init poisoningDocumentation/admin-guide/kernel-parameters.txt include/linux/page-flags.h mm/debug.c +2 more+69 -611 replies
3/4mm: Create non-atomic version of SetPageReserved for init useinclude/linux/page-flags.h mm/page_alloc.c+8 -20 replies
4/4mm: Defer ZONE_DEVICE page initialization to the point where we init pgmapinclude/linux/mm.h kernel/memremap.c mm/hmm.c +1 more+107 -2360 replies

Reviews trailers per patch

All 4 patches have a Reviewed-by or Acked-by.

PatchPavel TatashinMichal HockoMike RapoportDan Williams
1/4A-b
2/4R-b
3/4R-b A-b
4/4R-b T-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v5 thread

Cover letter [PATCH v5 0/4] Address issues slowing persistent memory initialization

This patch set is meant to be a v5 of my earlier submission with the same title[1].

The main changes from the previous version are that I have added a new patch to address an issue that had disabled deferred memory init on my system due to recent config changes related to CONFIG_NO_BOOTMEM. In addition I dropped the original patches 4 and 5 from the previous set as that is going to need to be a separate set of patches.

The main thing this patch set achieves is that it allows us to initialize each node worth of persistent memory independently. As a result we reduce page init time by about 2 minutes because instead of taking 30 to 40 seconds per node and going through each node one at a time, we process all 4 nodes in parallel in the case of a 12TB persistent memory setup spread evenly over 4 nodes.

[1]: https://lkml.org/lkml/2018/9/21/4
---

Alexander Duyck (4):
mm: Remove now defunct NO_BOOTMEM from depends list for deferred init
mm: Provide kernel parameter to allow disabling page init poisoning
mm: Create non-atomic version of SetPageReserved for init use
mm: Defer ZONE_DEVICE page initialization to the point where we init pgmap

 Documentation/admin-guide/kernel-parameters.txt |   12 +++
 arch/csky/Kconfig                               |    1 
 include/linux/mm.h                              |    2 
 include/linux/page-flags.h                      |    9 ++
 kernel/memremap.c                               |   24 ++---
 mm/Kconfig                                      |    1 
 mm/debug.c                                      |   46 ++++++++++
 mm/hmm.c                                        |   12 ++-
 mm/memblock.c                                   |    5 -
 mm/page_alloc.c                                 |  101 ++++++++++++++++++++++-
 mm/sparse.c                                     |    4 -
 11 files changed, 184 insertions(+), 33 deletions(-)

--
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm