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

From: Michal Hocko
Date: Thu Oct 19 2017 - 16:13:13 EST


On Thu 19-10-17 12:46:50, Shakeel Butt wrote:
> > [...]
> >>
> >> 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?
> >
>
> lru_add_drain_all() will drain everything irrespective if those pages
> are being mlocked or not.

yes, let me be more specific. lru_add_drain_all 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. Does it make more sense now?
--
Michal Hocko
SUSE Labs