linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 00/11] mm: page migration enhancement for thp
@ 2016-03-03  7:41 Naoya Horiguchi
  2016-03-03  7:41 ` [PATCH v1 01/11] mm: mempolicy: add queue_pages_node_check() Naoya Horiguchi
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Naoya Horiguchi @ 2016-03-03  7:41 UTC (permalink / raw)
  To: linux-mm
  Cc: Kirill A. Shutemov, Hugh Dickins, Andrew Morton, Dave Hansen,
	Andrea Arcangeli, Mel Gorman, Michal Hocko, Vlastimil Babka,
	Pavel Emelyanov, linux-kernel, Naoya Horiguchi, Naoya Horiguchi

Hi everyone,

This patchset enhances page migration functionality to handle thp migration
for various page migration's callers:
 - mbind(2)
 - move_pages(2)
 - migrate_pages(2)
 - cgroup/cpuset migration
 - memory hotremove
 - soft offline

The main benefit is that we can avoid unnecessary thp splits, which helps us
avoid performance decrease when your applications handles NUMA optimization on
their own.

The implementation is similar to that of normal page migration, the key point
is that we modify a pmd to a pmd migration entry in swap-entry like format.
pmd_present() is not simple and it's not enough by itself to determine whether
a given pmd is a pmd migration entry. See patch 3/11 and 5/11 for details.

Here're topics which might be helpful to start discussion:

- at this point, this functionality is limited to x86_64.

- there's alrealy an implementation of thp migration in autonuma code of which
  this patchset doesn't touch anything because it works fine as it is.

- fallback to thp split: current implementation just fails a migration trial if
  thp migration fails. It's possible to retry migration after splitting the thp,
  but that's not included in this version.

Any comments or advices are welcomed.

Thanks,
Naoya Horiguchi
---
Summary:

Naoya Horiguchi (11):
      mm: mempolicy: add queue_pages_node_check()
      mm: thp: introduce CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
      mm: thp: add helpers related to thp/pmd migration
      mm: thp: enable thp migration in generic path
      mm: thp: check pmd migration entry in common path
      mm: soft-dirty: keep soft-dirty bits over thp migration
      mm: hwpoison: fix race between unpoisoning and freeing migrate source page
      mm: hwpoison: soft offline supports thp migration
      mm: mempolicy: mbind and migrate_pages support thp migration
      mm: migrate: move_pages() supports thp migration
      mm: memory_hotplug: memory hotremove supports thp migration

 arch/x86/Kconfig                     |   4 +
 arch/x86/include/asm/pgtable.h       |  28 ++++++
 arch/x86/include/asm/pgtable_64.h    |   2 +
 arch/x86/include/asm/pgtable_types.h |   8 +-
 arch/x86/mm/gup.c                    |   3 +
 fs/proc/task_mmu.c                   |  25 +++--
 include/asm-generic/pgtable.h        |  34 ++++++-
 include/linux/huge_mm.h              |  17 ++++
 include/linux/swapops.h              |  64 +++++++++++++
 mm/Kconfig                           |   3 +
 mm/gup.c                             |   8 ++
 mm/huge_memory.c                     | 175 +++++++++++++++++++++++++++++++++--
 mm/memcontrol.c                      |   2 +
 mm/memory-failure.c                  |  41 ++++----
 mm/memory.c                          |   5 +
 mm/memory_hotplug.c                  |   8 ++
 mm/mempolicy.c                       | 110 ++++++++++++++++------
 mm/migrate.c                         |  57 +++++++++---
 mm/page_isolation.c                  |   8 ++
 mm/rmap.c                            |   7 +-
 20 files changed, 527 insertions(+), 82 deletions(-)

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

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

end of thread, other threads:[~2016-03-07  6:29 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-03  7:41 [PATCH v1 00/11] mm: page migration enhancement for thp Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 01/11] mm: mempolicy: add queue_pages_node_check() Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 02/11] mm: thp: introduce CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION Naoya Horiguchi
2016-03-03 10:24   ` Kirill A. Shutemov
2016-03-07  0:58   ` Balbir Singh
2016-03-07  6:28     ` Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 03/11] mm: thp: add helpers related to thp/pmd migration Naoya Horiguchi
2016-03-03  9:25   ` kbuild test robot
2016-03-03 10:40   ` Kirill A. Shutemov
2016-03-03 16:15     ` Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 04/11] mm: thp: enable thp migration in generic path Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 05/11] mm: thp: check pmd migration entry in common path Naoya Horiguchi
2016-03-03 10:50   ` Kirill A. Shutemov
2016-03-03 16:15     ` Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 06/11] mm: soft-dirty: keep soft-dirty bits over thp migration Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 07/11] mm: hwpoison: fix race between unpoisoning and freeing migrate source page Naoya Horiguchi
2016-03-03  7:41 ` [PATCH v1 08/11] mm: hwpoison: soft offline supports thp migration Naoya Horiguchi
2016-03-03  8:06   ` kbuild test robot
2016-03-03  7:41 ` [PATCH v1 09/11] mm: mempolicy: mbind and migrate_pages support " Naoya Horiguchi
2016-03-03  8:08   ` kbuild test robot
2016-03-03  7:41 ` [PATCH v1 10/11] mm: migrate: move_pages() supports " Naoya Horiguchi
2016-03-03  8:24   ` kbuild test robot
2016-03-03  7:41 ` [PATCH v1 11/11] mm: memory_hotplug: memory hotremove " Naoya Horiguchi
2016-03-03  8:40   ` Naoya Horiguchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).