linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [mm PATCH v2 0/6] Deferred page init improvements
@ 2018-10-11 22:13 Alexander Duyck
  2018-10-11 22:13 ` [mm PATCH v2 1/6] mm: Use mm_zero_struct_page from SPARC on all 64b architectures Alexander Duyck
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Alexander Duyck @ 2018-10-11 22:13 UTC (permalink / raw)
  To: linux-mm, akpm
  Cc: pavel.tatashin, mhocko, dave.jiang, alexander.h.duyck,
	linux-kernel, willy, davem, yi.z.zhang, khalid.aziz, rppt,
	vbabka, sparclinux, dan.j.williams, ldufour, mgorman, mingo,
	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 I have seen a 60% 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 init are mostly just code clean-up to allow for reuse.

The biggest gains of this patchset come from not having to test each pfn
multiple times to see if it is valid and if it is actually a part of the
node being initialized.

v1->v2:
    Fixed build issue on PowerPC due to page struct size being 56
    Added new patch that removed __SetPageReserved call for hotplug

---

Alexander Duyck (6):
      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: Do not set reserved flag for hotplug memory
      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                  |   34 ++
 mm/memblock.c                       |   63 ++++
 mm/page_alloc.c                     |  552 +++++++++++++++++++++--------------
 5 files changed, 483 insertions(+), 254 deletions(-)

--

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

end of thread, other threads:[~2018-10-13 18:46 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-11 22:13 [mm PATCH v2 0/6] Deferred page init improvements Alexander Duyck
2018-10-11 22:13 ` [mm PATCH v2 1/6] mm: Use mm_zero_struct_page from SPARC on all 64b architectures Alexander Duyck
2018-10-13 16:58   ` Pavel Tatashin
2018-10-13 17:18     ` Alexander Duyck
2018-10-13 17:49       ` Pavel Tatashin
2018-10-13 18:46         ` Alexander Duyck
2018-10-11 22:13 ` [mm PATCH v2 2/6] mm: Drop meminit_pfn_in_nid as it is redundant Alexander Duyck
2018-10-11 22:13 ` [mm PATCH v2 3/6] mm: Use memblock/zone specific iterator for handling deferred page init Alexander Duyck
2018-10-11 22:13 ` [mm PATCH v2 4/6] mm: Do not set reserved flag for hotplug memory Alexander Duyck
2018-10-11 22:58   ` Dan Williams
2018-10-11 23:22     ` Alexander Duyck
2018-10-11 22:13 ` [mm PATCH v2 5/6] mm: Move hot-plug specific memory init into separate functions and optimize Alexander Duyck
2018-10-11 22:14 ` [mm PATCH v2 6/6] mm: Use common iterator for deferred_init_pages and deferred_free_pages 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).