lkml.org 
[lkml]   [2021]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 073/101] mm/rmap: use page_not_mapped in try_to_unmap()
    Date
    From: Miaohe Lin <linmiaohe@huawei.com>

    [ Upstream commit b7e188ec98b1644ff70a6d3624ea16aadc39f5e0 ]

    page_mapcount_is_zero() calculates accurately how many mappings a hugepage
    has in order to check against 0 only. This is a waste of cpu time. We
    can do this via page_not_mapped() to save some possible atomic_read
    cycles. Remove the function page_mapcount_is_zero() as it's not used
    anymore and move page_not_mapped() above try_to_unmap() to avoid
    identifier undeclared compilation error.

    Link: https://lkml.kernel.org/r/20210130084904.35307-1-linmiaohe@huawei.com
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    mm/rmap.c | 11 +++--------
    1 file changed, 3 insertions(+), 8 deletions(-)

    diff --git a/mm/rmap.c b/mm/rmap.c
    index 5858639443b4..38573cb93578 100644
    --- a/mm/rmap.c
    +++ b/mm/rmap.c
    @@ -1716,9 +1716,9 @@ static bool invalid_migration_vma(struct vm_area_struct *vma, void *arg)
    return vma_is_temporary_stack(vma);
    }

    -static int page_mapcount_is_zero(struct page *page)
    +static int page_not_mapped(struct page *page)
    {
    - return !total_mapcount(page);
    + return !page_mapped(page);
    }

    /**
    @@ -1736,7 +1736,7 @@ bool try_to_unmap(struct page *page, enum ttu_flags flags)
    struct rmap_walk_control rwc = {
    .rmap_one = try_to_unmap_one,
    .arg = (void *)flags,
    - .done = page_mapcount_is_zero,
    + .done = page_not_mapped,
    .anon_lock = page_lock_anon_vma_read,
    };

    @@ -1760,11 +1760,6 @@ bool try_to_unmap(struct page *page, enum ttu_flags flags)
    return !page_mapcount(page) ? true : false;
    }

    -static int page_not_mapped(struct page *page)
    -{
    - return !page_mapped(page);
    -}
    -
    /**
    * try_to_munlock - try to munlock a page
    * @page: the page to be munlocked
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-06-28 16:39    [W:2.127 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site