[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171019193542.l5baqknxnfhljjkr@dhcp22.suse.cz>
Date: Thu, 19 Oct 2017 21:35:42 +0200
From: Michal Hocko <mhocko@...nel.org>
To: Shakeel Butt <shakeelb@...gle.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
Vlastimil Babka <vbabka@...e.cz>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Minchan Kim <minchan@...nel.org>,
Yisheng Xie <xieyisheng1@...wei.com>,
Ingo Molnar <mingo@...nel.org>,
Greg Thelen <gthelen@...gle.com>,
Hugh Dickins <hughd@...gle.com>, Linux MM <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] mm: mlock: remove lru_add_drain_all()
On Thu 19-10-17 12:19:26, Shakeel Butt wrote:
> On Thu, Oct 19, 2017 at 5:32 AM, Michal Hocko <mhocko@...nel.org> wrote:
> > On Wed 18-10-17 16:17:30, Shakeel Butt 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.
> >
> > some numbers would be really nice
> >
>
> On a production workload, customers complained that single mlock()
> call took around 10 seconds on mapped tmpfs files and the perf profile
> showed lru_add_drain_all as culprit.
draining can take some time. I wouldn't expect orders of seconds so perf
data would be definitely helpful in the changelog.
[...]
> > Is this really true? lru_add_drain_all will flush the previously cached
> > LRU pages. We are not flushing after the pages have been faulted in so
> > this might not do anything wrt. mlocked pages, right?
> >
>
> Sorry for the confusion. I wanted to say that if the pages which are
> being mlocked are on caches of remote cpus then lru_add_drain_all will
> move them to their corresponding LRUs and then remaining functionality
> of mlock will move them again from their evictable LRUs to unevictable
> LRU.
yes, but the point is that we are draining pages which might be not
directly related to pages which _will_ be mlocked by the syscall. In
fact those will stay on the cache. This is the primary reason why this
draining doesn't make much sense.
Or am I still misunderstanding what you are saying here?
--
Michal Hocko
SUSE Labs
Powered by blists - more mailing lists