Skip to content
  • Shakeel Butt's avatar
    mm: mlock: remove lru_add_drain_all() · 72b03fcd
    Shakeel Butt authored
    lru_add_drain_all() is not required by mlock() and it will drain
    everything that has been cached at the time mlock is called.  And that
    is not really related to the memory which will be faulted in (and
    cached) and mlocked by the syscall itself.
    
    If anything lru_add_drain_all() should be called _after_ pages have been
    mlocked and faulted in but even that is not strictly needed because
    those pages would get to the appropriate LRUs lazily during the reclaim
    path.  Moreover follow_page_pte (gup) will drain the local pcp LRU
    cache.
    
    On larger machines the overhead of lru_add_drain_all() in mlock() can be
    significant when mlocking data already in memory.  We have observed high
    latency in mlock() due to lru_add_drain_all() when the users were
    mlocking in memory tmpfs files.
    
    [mhocko@suse.com: changelog fix]
    Link: http://lkml.kernel.org/r/20171019222507.2894-1-shakeelb@google.com
    
    
    Signed-off-by: default avatarShakeel Butt <shakeelb@google.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Yisheng Xie <xieyisheng1@huawei.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Greg Thelen <gthelen@google.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    72b03fcd