lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 2 Mar 2018 14:05:41 +0100
From:   Michal Hocko <mhocko@...nel.org>
To:     Pavel Tatashin <pasha.tatashin@...cle.com>
Cc:     steven.sistare@...cle.com, daniel.m.jordan@...cle.com,
        akpm@...ux-foundation.org, mgorman@...hsingularity.net,
        linux-mm@...ck.org, linux-kernel@...r.kernel.org,
        gregkh@...uxfoundation.org, vbabka@...e.cz,
        bharata@...ux.vnet.ibm.com, tglx@...utronix.de, mingo@...hat.com,
        hpa@...or.com, x86@...nel.org, dan.j.williams@...el.com,
        kirill.shutemov@...ux.intel.com, bhe@...hat.com
Subject: Re: [v5 0/6] optimize memory hotplug

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ