Re: [PATCH] mm: mlock: remove lru_add_drain_all()

From: Balbir Singh
Date: Wed Oct 18 2017 - 23:19:17 EST


On Wed, 18 Oct 2017 16:17:30 -0700
Shakeel Butt <shakeelb@xxxxxxxxxx> wrote:

> Recently we have observed high latency in mlock() in our generic
> library and noticed that users have started using tmpfs files even
> without swap and the latency was due to expensive remote LRU cache
> draining.
>
> Is lru_add_drain_all() required by mlock()? The answer is no and the
> reason it is still in mlock() is to rapidly move mlocked pages to
> unevictable LRU. Without lru_add_drain_all() the mlocked pages which
> were on pagevec at mlock() time will be moved to evictable LRUs but
> will eventually be moved back to unevictable LRU by reclaim. So, we
> can safely remove lru_add_drain_all() from mlock(). Also there is no
> need for local lru_add_drain() as it will be called deep inside
> __mm_populate() (in follow_page_pte()).
>
> Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx>
> ---

Does this perturb statistics around LRU pages in cgroups and meminfo
about where the pages actually belong?

Balbir Singh.