From: Alexander Duyck <alexander.duyck@gmail.com>
To: linux-mm@kvack.org, akpm@linux-foundation.org
Cc: pavel.tatashin@microsoft.com, mhocko@suse.com,
linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org,
willy@infradead.org, davem@davemloft.net, khalid.aziz@oracle.com,
rppt@linux.vnet.ibm.com, kirill.shutemov@linux.intel.com,
sparclinux@vger.kernel.org, alexander.h.duyck@linux.intel.com,
ldufour@linux.vnet.ibm.com, mgorman@techsingularity.net,
mingo@kernel.org, vbabka@suse.cz
Subject: [mm PATCH v7 0/4] Deferred page init improvements
Date: Fri, 05 Apr 2019 15:12:06 -0700 [thread overview]
Message-ID: <20190405221043.12227.19679.stgit@localhost.localdomain> (raw)
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(-)
--
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Duyck <alexander.duyck@gmail.com>
To: linux-mm@kvack.org, akpm@linux-foundation.org
Cc: pavel.tatashin@microsoft.com, mhocko@suse.com,
dave.jiang@intel.com, linux-nvdimm@lists.01.org,
alexander.h.duyck@linux.intel.com, linux-kernel@vger.kernel.org,
willy@infradead.org, mingo@kernel.org,
yi.z.zhang@linux.intel.com, khalid.aziz@oracle.com,
rppt@linux.vnet.ibm.com, vbabka@suse.cz,
sparclinux@vger.kernel.org, dan.j.williams@intel.com,
ldufour@linux.vnet.ibm.com, mgorman@techsingularity.net,
davem@davemloft.net, kirill.shutemov@linux.intel.com
Subject: [mm PATCH v7 0/4] Deferred page init improvements
Date: Fri, 05 Apr 2019 15:12:06 -0700 [thread overview]
Message-ID: <20190405221043.12227.19679.stgit@localhost.localdomain> (raw)
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(-)
--
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Duyck <alexander.duyck@gmail.com>
To: linux-mm@kvack.org, akpm@linux-foundation.org
Cc: pavel.tatashin@microsoft.com, mhocko@suse.com,
dave.jiang@intel.com, linux-nvdimm@lists.01.org,
alexander.h.duyck@linux.intel.com, linux-kernel@vger.kernel.org,
willy@infradead.org, mingo@kernel.org,
yi.z.zhang@linux.intel.com, khalid.aziz@oracle.com,
rppt@linux.vnet.ibm.com, vbabka@suse.cz,
sparclinux@vger.kernel.org, dan.j.williams@intel.com,
ldufour@linux.vnet.ibm.com, mgorman@techsingularity.net,
davem@davemloft.net, kirill.shutemov@linux.intel.com
Subject: [mm PATCH v7 0/4] Deferred page init improvements
Date: Fri, 05 Apr 2019 22:12:06 +0000 [thread overview]
Message-ID: <20190405221043.12227.19679.stgit@localhost.localdomain> (raw)
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(-)
--
next reply other threads:[~2019-04-05 22:12 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-05 22:12 Alexander Duyck [this message]
2019-04-05 22:12 ` [mm PATCH v7 0/4] Deferred page init improvements Alexander Duyck
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
2019-04-05 22:12 ` Alexander Duyck
2019-04-05 22:12 ` 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 ` Alexander Duyck
2019-04-05 22:12 ` Alexander Duyck
2019-04-05 22:12 ` [mm PATCH v7 3/4] mm: Implement new zone specific memblock iterator Alexander Duyck
2019-04-05 22:12 ` Alexander Duyck
2019-04-05 22:12 ` Alexander Duyck
[not found] ` <20190405221225.12227.22573.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2019-04-06 13:02 ` Mike Rapoport
2019-04-06 13:02 ` Mike Rapoport
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
2019-04-05 22:12 ` Alexander Duyck
2019-04-05 22:12 ` Alexander Duyck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190405221043.12227.19679.stgit@localhost.localdomain \
--to=alexander.duyck@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.h.duyck@linux.intel.com \
--cc=davem@davemloft.net \
--cc=khalid.aziz@oracle.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=ldufour@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nvdimm@lists.01.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@suse.com \
--cc=mingo@kernel.org \
--cc=pavel.tatashin@microsoft.com \
--cc=rppt@linux.vnet.ibm.com \
--cc=sparclinux@vger.kernel.org \
--cc=vbabka@suse.cz \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.