]> Git Repo - linux.git/commit
x86: define _PAGE_NUMA by reusing software bits on the PMD and PTE levels
authorMel Gorman <[email protected]>
Wed, 4 Jun 2014 23:06:30 +0000 (16:06 -0700)
committerLinus Torvalds <[email protected]>
Wed, 4 Jun 2014 23:53:55 +0000 (16:53 -0700)
commitc46a7c817e662a820373bb76b88d0ad67d6abe5d
tree41a7d24c818c9cfe71f335f7fdae162896aa3b23
parent4468dd76f51f8be75d4f04f1d721e379596e7262
x86: define _PAGE_NUMA by reusing software bits on the PMD and PTE levels

_PAGE_NUMA is currently an alias of _PROT_PROTNONE to trap NUMA hinting
faults on x86.  Care is taken such that _PAGE_NUMA is used only in
situations where the VMA flags distinguish between NUMA hinting faults
and prot_none faults.  This decision was x86-specific and conceptually
it is difficult requiring special casing to distinguish between PROTNONE
and NUMA ptes based on context.

Fundamentally, we only need the _PAGE_NUMA bit to tell the difference
between an entry that is really unmapped and a page that is protected
for NUMA hinting faults as if the PTE is not present then a fault will
be trapped.

Swap PTEs on x86-64 use the bits after _PAGE_GLOBAL for the offset.
This patch shrinks the maximum possible swap size and uses the bit to
uniquely distinguish between NUMA hinting ptes and swap ptes.

Signed-off-by: Mel Gorman <[email protected]>
Cc: David Vrabel <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Peter Anvin <[email protected]>
Cc: Fengguang Wu <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Steven Noonan <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Andrea Arcangeli <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: Srikar Dronamraju <[email protected]>
Cc: Cyrill Gorcunov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
arch/powerpc/include/asm/pgtable.h
arch/x86/include/asm/pgtable.h
arch/x86/include/asm/pgtable_64.h
arch/x86/include/asm/pgtable_types.h
arch/x86/mm/pageattr-test.c
include/asm-generic/pgtable.h
include/linux/swapops.h
mm/memory.c
This page took 0.067169 seconds and 4 git commands to generate.