• Vlastimil Babka's avatar
    mm/mempolicy.c: merge alloc_hugepage_vma to alloc_pages_vma · be97a41b
    Vlastimil Babka authored
    The previous commit ("mm/thp: Allocate transparent hugepages on local
    node") introduced alloc_hugepage_vma() to mm/mempolicy.c to perform a
    special policy for THP allocations.  The function has the same interface
    as alloc_pages_vma(), shares a lot of boilerplate code and a long
    comment.
    
    This patch merges the hugepage special case into alloc_pages_vma.  The
    extra if condition should be cheap enough price to pay.  We also prevent
    a (however unlikely) race with parallel mems_allowed update, which could
    make hugepage allocation restart only within the fallback call to
    alloc_hugepage_vma() and not reconsider the special rule in
    alloc_hugepage_vma().
    
    Also by making sure mpol_cond_put(pol) is always called before actual
    allocation attempt, we can use a single exit path within the function.
    
    Also update the comment for missing node parameter and obsolete reference
    to mm_sem.
    Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    be97a41b
mempolicy.c 71.5 KB