lkml.org 
[lkml]   [2017]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 02/11] mm: mempolicy: add queue_pages_node_check()
    Date
    From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>

    Introduce a separate check routine related to MPOL_MF_INVERT flag.
    This patch just does cleanup, no behavioral change.

    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    ---
    mm/mempolicy.c | 16 +++++++++++-----
    1 file changed, 11 insertions(+), 5 deletions(-)

    diff --git a/mm/mempolicy.c b/mm/mempolicy.c
    index 1e7873e40c9a..aa242da77fda 100644
    --- a/mm/mempolicy.c
    +++ b/mm/mempolicy.c
    @@ -477,6 +477,15 @@ struct queue_pages {
    struct vm_area_struct *prev;
    };

    +static inline bool queue_pages_node_check(struct page *page,
    + struct queue_pages *qp)
    +{
    + int nid = page_to_nid(page);
    + unsigned long flags = qp->flags;
    +
    + return node_isset(nid, *qp->nmask) == !!(flags & MPOL_MF_INVERT);
    +}
    +
    /*
    * Scan through pages checking if pages follow certain conditions,
    * and move them to the pagelist if they do.
    @@ -530,8 +539,7 @@ static int queue_pages_pte_range(pmd_t *pmd, unsigned long addr,
    */
    if (PageReserved(page))
    continue;
    - nid = page_to_nid(page);
    - if (node_isset(nid, *qp->nmask) == !!(flags & MPOL_MF_INVERT))
    + if (queue_pages_node_check(page, qp))
    continue;
    if (PageTransCompound(page)) {
    get_page(page);
    @@ -563,7 +571,6 @@ static int queue_pages_hugetlb(pte_t *pte, unsigned long hmask,
    #ifdef CONFIG_HUGETLB_PAGE
    struct queue_pages *qp = walk->private;
    unsigned long flags = qp->flags;
    - int nid;
    struct page *page;
    spinlock_t *ptl;
    pte_t entry;
    @@ -573,8 +580,7 @@ static int queue_pages_hugetlb(pte_t *pte, unsigned long hmask,
    if (!pte_present(entry))
    goto unlock;
    page = pte_page(entry);
    - nid = page_to_nid(page);
    - if (node_isset(nid, *qp->nmask) == !!(flags & MPOL_MF_INVERT))
    + if (queue_pages_node_check(page, qp))
    goto unlock;
    /* With MPOL_MF_MOVE, we migrate only unshared hugepage. */
    if (flags & (MPOL_MF_MOVE_ALL) ||
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-03-13 16:47    [W:2.512 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site