lkml.org 
[lkml]   [2014]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 13/17] mm: shmem: Avoid atomic operation during shmem_getpage_gfp
    Date
    shmem_getpage_gfp uses an atomic operation to set the SwapBacked field
    before it's even added to the LRU or visible. This is unnecessary as what
    could it possible race against? Use an unlocked variant.

    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    ---
    include/linux/page-flags.h | 1 +
    mm/shmem.c | 2 +-
    2 files changed, 2 insertions(+), 1 deletion(-)

    diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
    index d1fe1a7..4d4b39a 100644
    --- a/include/linux/page-flags.h
    +++ b/include/linux/page-flags.h
    @@ -208,6 +208,7 @@ PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned) /* Xen */
    PAGEFLAG(SavePinned, savepinned); /* Xen */
    PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
    PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
    + __SETPAGEFLAG(SwapBacked, swapbacked)

    __PAGEFLAG(SlobFree, slob_free)

    diff --git a/mm/shmem.c b/mm/shmem.c
    index 9f70e02..f47fb38 100644
    --- a/mm/shmem.c
    +++ b/mm/shmem.c
    @@ -1132,7 +1132,7 @@ repeat:
    goto decused;
    }

    - SetPageSwapBacked(page);
    + __SetPageSwapBacked(page);
    __set_page_locked(page);
    error = mem_cgroup_charge_file(page, current->mm,
    gfp & GFP_RECLAIM_MASK);
    --
    1.8.4.5


    \
     
     \ /
      Last update: 2014-05-01 11:41    [W:4.049 / U:0.492 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site