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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>