[PATCH 0/3] Use an alternative to _PAGE_PROTNONE for _PAGE_NUMA v4

From: Mel Gorman
Date: Tue Apr 15 2014 - 10:42:32 EST


Fengguang Wu found that an earlier version crashed on his
tests. This version passed tests running with DEBUG_VM and
DEBUG_PAGEALLOC. Fengguang, another test would be appreciated and
if it helps this series is the mm-numa-use-high-bit-v4r3 branch in
git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma.git

At the very least the first patch of this series needs to be picked up and
backported to stable as David Vrabel reports that Xen users are now hitting
the bug routinely. It's currently tagged for stable but please make sure
that information does not get stripped when merged and gets picked up by
the stable maintainers in a timely fashion.

Changelog since V2
o Use separate bit and shrink max swap size
o Distinguish between pte_present and pte_numa for swap ptes
o Remove bit shuffling depending on config
o Clear NUMA information protection modification on x86
o Removed RFC

Changelog since V1
o Reuse software-bits
o Use paravirt ops when modifying PTEs in the NUMA helpers

Aliasing _PAGE_NUMA and _PAGE_PROTNONE had some convenient properties but
it ultimately gave Xen a headache and pisses almost everybody off that
looks closely at it. Two discussions on "why this makes sense" is one
discussion too many so rather than having a third so here is this series.
This series uses bits to uniquely identify NUMA hinting ptes instead of
depending on PROTNONE faults to simply "miss" the PTEs.

It really could do with a tested-by from the powerpc people.

arch/powerpc/include/asm/pgtable.h | 5 +++
arch/x86/Kconfig | 2 +-
arch/x86/include/asm/pgtable.h | 14 +++++---
arch/x86/include/asm/pgtable_64.h | 8 +++++
arch/x86/include/asm/pgtable_types.h | 66 +++++++++++++++++++-----------------
arch/x86/mm/pageattr-test.c | 2 +-
include/asm-generic/pgtable.h | 35 +++++++++++++------
include/linux/swapops.h | 2 +-
mm/memory.c | 12 +++----
9 files changed, 90 insertions(+), 56 deletions(-)

--
1.8.4.5

Mel Gorman (3):
mm: use paravirt friendly ops for NUMA hinting ptes
x86: Require x86-64 for automatic NUMA balancing
x86: Define _PAGE_NUMA by reusing software bits on the PMD and PTE
levels

arch/powerpc/include/asm/pgtable.h | 5 +++
arch/x86/Kconfig | 2 +-
arch/x86/include/asm/pgtable.h | 14 +++++---
arch/x86/include/asm/pgtable_64.h | 8 +++++
arch/x86/include/asm/pgtable_types.h | 66 +++++++++++++++++++-----------------
arch/x86/mm/pageattr-test.c | 2 +-
include/asm-generic/pgtable.h | 35 +++++++++++++------
include/linux/swapops.h | 2 +-
mm/memory.c | 17 ++++------
9 files changed, 93 insertions(+), 58 deletions(-)

--
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/