Re: [PATCH] memory hotplug: run lru_add_drain_all() on each cpu

Lee Schermerhorn
2008-12-08T13:56:28Z

On Sun, 2008-12-07 at 13:43 +0900, KOSAKI Motohiro wrote:
> CC to Lee Schermerhorn
>
>
> > On Fri, 2008-12-05 at 14:08 +0100, Gerald Schaefer wrote:
> > >
> > > As explained above, the per-cpu pagevec layout should be independent
> > > from NUMA or UNEVICTABLE_LRU, so I guess the right thing to do here
> > > is completely remove the #ifdef as in the patch from Kosaki Motohiro
> > > (or at least replace it with a CONFIG_SMP as suggested by Kamezawa
> > > Hiroyuki).
> >
> > Thanks for looking into it deeper. That CONFIG_SMP thing really does
> > look like the right solution.
>
> Lee, Could you read this thread and explain why you add ifdef CONFIG_UNEVICTABLE_LRU?
> I am not sure about that Dave's proposal is safe change. (but I guess he is right)

I added that back in Patch 17/25 "Mlocked Pages are
non-reclaimable" [before nonreclaimable became unevictable". I did this
because "lru_add_drain_all()" was only used by numa code prior to this,
and was under #ifdef CONFIG_NUMA". I called lru_add_drain_all() from
__mlock_vma_pages_range() [since removed] and I wanted the
nonreclaimable/unevictable mlocked pages feature to be independent of
numa. So, I had to ensure that we defined the function for
nonreclaimable/unevictable lru as well as numa.

Now it appears that hotplug and memcg also depend on
lru_add_drain_all(), so making it depend on 'SMP looks reasonable to me.

Lee