linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [mm PATCH v7 0/4] Deferred page init improvements
@ 2019-04-05 22:12 Alexander Duyck
  2019-04-05 22:12 ` [mm PATCH v7 1/4] mm: Use mm_zero_struct_page from SPARC on all 64b architectures Alexander Duyck
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Alexander Duyck @ 2019-04-05 22:12 UTC (permalink / raw)
  To: linux-mm, akpm
  Cc: pavel.tatashin, mhocko, dave.jiang, linux-nvdimm,
	alexander.h.duyck, linux-kernel, willy, mingo, yi.z.zhang,
	khalid.aziz, rppt, vbabka, sparclinux, dan.j.williams, ldufour,
	mgorman, davem, kirill.shutemov

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

In my testing on an x86_64 system with 384GB of RAM I have seen the
following. In the case of regular memory initialization the deferred init
time was decreased from 3.75s to 1.38s on average. This amounts to a 172%
improvement for the deferred memory initialization performance.

I have called out the improvement observed with each patch.

v1->v2:
    Fixed build issue on PowerPC due to page struct size being 56
    Added new patch that removed __SetPageReserved call for hotplug
v2->v3:
    Rebased on latest linux-next
    Removed patch that had removed __SetPageReserved call from init
    Added patch that folded __SetPageReserved into set_page_links
    Tweaked __init_pageblock to use start_pfn to get section_nr instead of pfn
v3->v4:
    Updated patch description and comments for mm_zero_struct_page patch
        Replaced "default" with "case 64"
        Removed #ifndef mm_zero_struct_page
    Fixed typo in comment that ommited "_from" in kerneldoc for iterator
    Added Reviewed-by for patches reviewed by Pavel
    Added Acked-by from Michal Hocko
    Added deferred init times for patches that affect init performance
    Swapped patches 5 & 6, pulled some code/comments from 4 into 5
v4->v5:
    Updated Acks/Reviewed-by
    Rebased on latest linux-next
    Split core bits of zone iterator patch from MAX_ORDER_NR_PAGES init
v5->v6:
    Rebased on linux-next with previous v5 reverted
    Drop the "This patch" or "This change" from patch descriptions.
    Cleaned up patch descriptions for patches 3 & 4
    Fixed kerneldoc for __next_mem_pfn_range_in_zone
    Updated several Reviewed-by, and incorporated suggestions from Pavel
    Added __init_single_page_nolru to patch 5 to consolidate code
    Refactored iterator in patch 7 and fixed several issues
v6->v7:
    Updated MAX_ORDER_NR_PAGES patch to stop on section aligned boundaries
    Dropped patches 5-7
        Will follow-up later with reserved bit rework before resubmitting

---

Alexander Duyck (4):
      mm: Use mm_zero_struct_page from SPARC on all 64b architectures
      mm: Drop meminit_pfn_in_nid as it is redundant
      mm: Implement new zone specific memblock iterator
      mm: Initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections


 arch/sparc/include/asm/pgtable_64.h |   30 -----
 include/linux/memblock.h            |   41 +++++++
 include/linux/mm.h                  |   41 ++++++-
 mm/memblock.c                       |   64 ++++++++++
 mm/page_alloc.c                     |  218 ++++++++++++++++++++++-------------
 5 files changed, 277 insertions(+), 117 deletions(-)

--


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-04-06 13:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-05 22:12 [mm PATCH v7 0/4] Deferred page init improvements Alexander Duyck
2019-04-05 22:12 ` [mm PATCH v7 1/4] mm: Use mm_zero_struct_page from SPARC on all 64b architectures Alexander Duyck
2019-04-05 22:12 ` [mm PATCH v7 2/4] mm: Drop meminit_pfn_in_nid as it is redundant Alexander Duyck
2019-04-05 22:12 ` [mm PATCH v7 3/4] mm: Implement new zone specific memblock iterator Alexander Duyck
2019-04-06 13:02   ` Mike Rapoport
2019-04-05 22:12 ` [mm PATCH v7 4/4] mm: Initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections Alexander Duyck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).