From: Michal Hocko <mhocko@kernel.org>
To: Pavel Tatashin <pasha.tatashin@oracle.com>
Cc: steven.sistare@oracle.com, daniel.m.jordan@oracle.com,
akpm@linux-foundation.org, mgorman@techsingularity.net,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
gregkh@linuxfoundation.org, vbabka@suse.cz,
bharata@linux.vnet.ibm.com, tglx@linutronix.de, mingo@redhat.com,
hpa@zytor.com, x86@kernel.org, dan.j.williams@intel.com,
kirill.shutemov@linux.intel.com, bhe@redhat.com
Subject: Re: [v5 0/6] optimize memory hotplug
Date: Fri, 2 Mar 2018 14:05:41 +0100 [thread overview]
Message-ID: <20180302130541.GO15057@dhcp22.suse.cz> (raw)
In-Reply-To: <20180228030308.1116-1-pasha.tatashin@oracle.com>
Hi,
I will not get to review this version before Mar 12 because I am moving
and will be without access to my email and I am pretty sure the time
will not work well for me either.
Sorry about that.
On Tue 27-02-18 22:03:02, Pavel Tatashin wrote:
> Changelog:
> v5 - v4
> - Addressed more comments from Ingo Molnar and Michal Hocko.
> - In the patch "optimize memory hotplug" we are now using
> struct memory_block to hold node id as suggested by Michal.
> - In the patch "don't read nid from struct page during hotplug"
> renamed register_new_memory() to hotplug_memory_register() as
> suggested by Ingo. Also, in this patch replaced the
> description with the one provided by Michal.
> - Fixed other spelling issues found by Ingo.
>
> v3 - v4
> Addressed comments from Ingo Molnar and from Michal Hocko
> Split 4th patch into three patches
> Instead of using section table to save node ids, saving node id in
> the first page of every section.
>
> v2 - v3
> Fixed two issues found during testing
> Addressed Kbuild warning reports
>
> v1 - v2
> Added struct page poisoning checking in order to verify that
> struct pages are never accessed until initialized during memory
> hotplug
>
> This patchset:
> - Improves hotplug performance by eliminating a number of
> struct page traverses during memory hotplug.
>
> - Fixes some issues with hotplugging, where boundaries
> were not properly checked. And on x86 block size was not properly aligned
> with end of memory
>
> - Also, potentially improves boot performance by eliminating condition from
> __init_single_page().
>
> - Adds robustness by verifying that that struct pages are correctly
> poisoned when flags are accessed.
>
> The following experiments were performed on Xeon(R)
> CPU E7-8895 v3 @ 2.60GHz with 1T RAM:
>
> booting in qemu with 960G of memory, time to initialize struct pages:
>
> no-kvm:
> TRY1 TRY2
> BEFORE: 39.433668 39.39705
> AFTER: 36.903781 36.989329
>
> with-kvm:
> BEFORE: 10.977447 11.103164
> AFTER: 10.929072 10.751885
>
> Hotplug 896G memory:
> no-kvm:
> TRY1 TRY2
> BEFORE: 848.740000 846.910000
> AFTER: 783.070000 786.560000
>
> with-kvm:
> TRY1 TRY2
> BEFORE: 34.410000 33.57
> AFTER: 29.810000 29.580000
>
> Pavel Tatashin (6):
> mm/memory_hotplug: enforce block size aligned range check
> x86/mm/memory_hotplug: determine block size based on the end of boot
> memory
> mm: add uninitialized struct page poisoning sanity checking
> mm/memory_hotplug: optimize probe routine
> mm/memory_hotplug: don't read nid from struct page during hotplug
> mm/memory_hotplug: optimize memory hotplug
>
> arch/x86/mm/init_64.c | 33 +++++++++++++++++++++++++++++----
> drivers/base/memory.c | 40 ++++++++++++++++++++++------------------
> drivers/base/node.c | 24 +++++++++++++++++-------
> include/linux/memory.h | 3 ++-
> include/linux/mm.h | 4 +++-
> include/linux/node.h | 4 ++--
> include/linux/page-flags.h | 22 +++++++++++++++++-----
> mm/memblock.c | 2 +-
> mm/memory_hotplug.c | 44 +++++++++++++++++---------------------------
> mm/page_alloc.c | 28 ++++++++++------------------
> mm/sparse.c | 8 +++++++-
> 11 files changed, 127 insertions(+), 85 deletions(-)
>
> --
> 2.16.2
>
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2018-03-02 13:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-28 3:03 Pavel Tatashin
2018-02-28 3:03 ` [v5 1/6] mm/memory_hotplug: enforce block size aligned range check Pavel Tatashin
2018-02-28 3:03 ` [v5 2/6] x86/mm/memory_hotplug: determine block size based on the end of boot memory Pavel Tatashin
2018-02-28 3:03 ` [v5 3/6] mm: add uninitialized struct page poisoning sanity checking Pavel Tatashin
2018-02-28 3:03 ` [v5 4/6] mm/memory_hotplug: optimize probe routine Pavel Tatashin
2018-02-28 3:03 ` [v5 5/6] mm/memory_hotplug: don't read nid from struct page during hotplug Pavel Tatashin
2018-02-28 3:03 ` [v5 6/6] mm/memory_hotplug: optimize memory hotplug Pavel Tatashin
2018-03-02 13:05 ` Michal Hocko [this message]
2018-03-02 13:42 ` [v5 0/6] " Pavel Tatashin
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=20180302130541.GO15057@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bharata@linux.vnet.ibm.com \
--cc=bhe@redhat.com \
--cc=dan.j.williams@intel.com \
--cc=daniel.m.jordan@oracle.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mingo@redhat.com \
--cc=pasha.tatashin@oracle.com \
--cc=steven.sistare@oracle.com \
--cc=tglx@linutronix.de \
--cc=vbabka@suse.cz \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®