Messages in this thread | | | Date | Thu, 19 Oct 2017 22:53:12 +0200 | From | Michal Hocko <> | Subject | Re: [PATCH] mm: mlock: remove lru_add_drain_all() |
| |
On Thu 19-10-17 13:14:52, Shakeel Butt wrote: > On Thu, Oct 19, 2017 at 1:13 PM, Michal Hocko <mhocko@kernel.org> wrote: > > 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? > > > > Yes, you are absolutely right. Sorry for the confusion.
So I think it would be much better to justify this change by arguing that paying a random overhead for something that doesn't relate to the work to be done is simply wrong.
-- Michal Hocko SUSE Labs
| |