• Mel Gorman's avatar
    mm: clear pmd_numa before invalidating · 67f87463
    Mel Gorman authored
    On x86, PMD entries are similar to _PAGE_PROTNONE protection and are
    handled as NUMA hinting faults.  The following two page table protection
    bits are what defines them
    
    	_PAGE_NUMA:set	_PAGE_PRESENT:clear
    
    A PMD is considered present if any of the _PAGE_PRESENT, _PAGE_PROTNONE,
    _PAGE_PSE or _PAGE_NUMA bits are set.  If pmdp_invalidate encounters a
    pmd_numa, it clears the present bit leaving _PAGE_NUMA which will be
    considered not present by the CPU but present by pmd_present.  The
    existing caller of pmdp_invalidate should handle it but it's an
    inconsistent state for a PMD.  This patch keeps the state consistent
    when calling pmdp_invalidate.
    Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
    Reviewed-by: default avatarRik van Riel <riel@redhat.com>
    Cc: Alex Thorlton <athorlton@sgi.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    67f87463
pgtable-generic.c 5.15 KB