Re: [patch 0/8] mm: memcg naturalization -rc2

Johannes Weiner
2011-06-02T10:00:37Z

On Thu, Jun 02, 2011 at 06:06:51PM +0900, Hiroyuki Kamezawa wrote:
> 2011/6/2 Johannes Weiner <hannes@cmpxchg.org>:
> > On Thu, Jun 02, 2011 at 08:52:47AM +0900, Hiroyuki Kamezawa wrote:
> >> 2011/6/1 Johannes Weiner <hannes@cmpxchg.org>:
> >
> > The patch series is not a performance optimization.  But I can include
> > it to prove there are no regressions.
> >
> yes, it's helpful.

Okay.

> >>   Hmm, how about splitting patch 2/8 into small patches and see what happens in
> >>   3.2 or 3.3 ? While that, we can make softlimit works better.
> >>   (and once we do 2/8, our direction will be fixed to the direction to
> >> remove global LRU.)
> >
> > Do you have specific parts in mind that could go stand-alone?
> >
> > One thing I can think of is splitting up those parts:
> >
> >  1. move /target/ reclaim to generic code
> >
> >  2. convert /global/ reclaim from global lru to hierarchy reclaim
> >     including root_mem_cgroup
>
> Hmm, at brief look
> patch 2/8
> - hierarchy walk rewrite code should be stand alone and can be merged
> 1st, as clean-up

You mean introducing mem_cgroup_hierarchy_walk() and make use of it in
mem_cgroup_hierarchical_reclaim() as a first step?

> - root cgroup LRU handling was required for performance. I think we
> removed tons of
> atomic ops and can remove that special handling personally. But this change of
> root cgroup handling should be in separate patch. with performance report.

I disagree.

With view on the whole patch series, linking ungrouped process pages
to the root_mem_cgroup is traded against

1. linking ungrouped process pages to the global LRU

2. linking grouped process pages to both the global LRU and the
memcg LRU

The comparison you propose is neither fair nor relevant because it
would never make sense to merge that patch without the others.