• Lee Schermerhorn's avatar
    mm: mempolicy: Check for misplaced page · 771fb4d8
    Lee Schermerhorn authored
    This patch provides a new function to test whether a page resides
    on a node that is appropriate for the mempolicy for the vma and
    address where the page is supposed to be mapped.  This involves
    looking up the node where the page belongs.  So, the function
    returns that node so that it may be used to allocated the page
    without consulting the policy again.
    
    A subsequent patch will call this function from the fault path.
    Because of this, I don't want to go ahead and allocate the page, e.g.,
    via alloc_page_vma() only to have to free it if it has the correct
    policy.  So, I just mimic the alloc_page_vma() node computation
    logic--sort of.
    
    Note:  we could use this function to implement a MPOL_MF_STRICT
    behavior when migrating pages to match mbind() mempolicy--e.g.,
    to ensure that pages in an interleaved range are reinterleaved
    rather than left where they are when they reside on any page in
    the interleave nodemask.
    Signed-off-by: default avatarLee Schermerhorn <lee.schermerhorn@hp.com>
    Reviewed-by: default avatarRik van Riel <riel@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    [ Added MPOL_F_LAZY to trigger migrate-on-fault;
      simplified code now that we don't have to bother
      with special crap for interleaved ]
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
    771fb4d8
mempolicy.c 68.3 KB