All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] optimize memory hotplug
@ 2018-02-13 19:31 ` Pavel Tatashin
  0 siblings, 0 replies; 38+ messages in thread
From: Pavel Tatashin @ 2018-02-13 19:31 UTC (permalink / raw)
  To: steven.sistare, daniel.m.jordan, akpm, mgorman, mhocko, linux-mm,
	linux-kernel, gregkh, vbabka, bharata, tglx, mingo, hpa, x86,
	dan.j.williams, kirill.shutemov, bhe

Changelog:
	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 (4):
  mm/memory_hotplug: enforce block size aligned range check
  x86/mm/memory_hotplug: determine block size based on the end of boot
    memory
  mm: uninitialized struct page poisoning sanity checking
  mm/memory_hotplug: optimize memory hotplug

 arch/x86/mm/init_64.c          | 33 +++++++++++++++++++++++++++++----
 drivers/base/memory.c          | 38 +++++++++++++++++++++-----------------
 drivers/base/node.c            | 17 ++++++++++-------
 include/linux/memory_hotplug.h |  2 ++
 include/linux/mm.h             |  4 +++-
 include/linux/node.h           |  4 ++--
 include/linux/page-flags.h     | 22 +++++++++++++++++-----
 mm/memblock.c                  |  2 +-
 mm/memory_hotplug.c            | 36 ++++++++++--------------------------
 mm/page_alloc.c                | 28 ++++++++++------------------
 mm/sparse.c                    | 29 ++++++++++++++++++++++++++---
 11 files changed, 131 insertions(+), 84 deletions(-)

-- 
2.16.1

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

end of thread, other threads:[~2018-02-15 19:00 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-13 19:31 [PATCH v3 0/4] optimize memory hotplug Pavel Tatashin
2018-02-13 19:31 ` Pavel Tatashin
2018-02-13 19:31 ` [PATCH v3 1/4] mm/memory_hotplug: enforce block size aligned range check Pavel Tatashin
2018-02-13 19:31   ` Pavel Tatashin
2018-02-15 11:34   ` Michal Hocko
2018-02-15 11:34     ` Michal Hocko
2018-02-15 13:36     ` Pavel Tatashin
2018-02-15 13:36       ` Pavel Tatashin
2018-02-15 14:40       ` Michal Hocko
2018-02-15 14:40         ` Michal Hocko
2018-02-15 15:05         ` Pavel Tatashin
2018-02-15 15:05           ` Pavel Tatashin
2018-02-13 19:31 ` [PATCH v3 2/4] x86/mm/memory_hotplug: determine block size based on the end of boot memory Pavel Tatashin
2018-02-13 19:31   ` Pavel Tatashin
2018-02-15 11:37   ` Michal Hocko
2018-02-15 11:37     ` Michal Hocko
2018-02-15 13:39     ` Pavel Tatashin
2018-02-15 13:39       ` Pavel Tatashin
2018-02-15 19:00       ` Ingo Molnar
2018-02-15 19:00         ` Ingo Molnar
2018-02-13 19:31 ` [PATCH v3 3/4] mm: uninitialized struct page poisoning sanity checking Pavel Tatashin
2018-02-13 19:31   ` Pavel Tatashin
2018-02-15 11:53   ` Michal Hocko
2018-02-15 11:53     ` Michal Hocko
2018-02-15 13:41     ` Pavel Tatashin
2018-02-15 13:41       ` Pavel Tatashin
2018-02-13 19:31 ` [PATCH v3 4/4] mm/memory_hotplug: optimize memory hotplug Pavel Tatashin
2018-02-13 19:31   ` Pavel Tatashin
2018-02-15 12:43   ` Michal Hocko
2018-02-15 12:43     ` Michal Hocko
2018-02-15 13:46     ` Pavel Tatashin
2018-02-15 13:46       ` Pavel Tatashin
2018-02-13 21:53 ` [PATCH v3 0/4] " Andrew Morton
2018-02-13 21:53   ` Andrew Morton
2018-02-14  8:09   ` Ingo Molnar
2018-02-14  8:09     ` Ingo Molnar
2018-02-14 14:14     ` Pavel Tatashin
2018-02-14 14:14       ` Pavel Tatashin

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.