Re: [RFC 1/3] memcg: integrate soft reclaim tighter with zone shrinking code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue 09-04-13 09:08:33, Johannes Weiner wrote:
> On Tue, Apr 09, 2013 at 02:13:13PM +0200, Michal Hocko wrote:
[...]
> > TODO: remove mem_cgroup_tree_per_zone, mem_cgroup_shrink_node_zone and co.
> > but maybe it would be easier for review to remove that code in a separate
> > patch...
> 
> It should be in this series, though, for the diffstat :-)

Sure thing, I just wanted to prevent from pointless work during rebasing
when this changes its shape, like all such "bug changes"

> 
> > ---
> > [1] TODO: put size vmlinux before/after whole clean-up
> 
> Yes!
> 
> > @@ -1984,6 +2003,27 @@ static void shrink_zone(struct zone *zone, struct scan_control *sc)
> >  		} while (memcg);
> >  	} while (should_continue_reclaim(zone, sc->nr_reclaimed - nr_reclaimed,
> >  					 sc->nr_scanned - nr_scanned, sc));
> > +
> > +	return nr_shrunk;
> > +}
> > +
> > +
> > +static void shrink_zone(struct zone *zone, struct scan_control *sc)
> > +{
> > +	bool do_soft_reclaim = mem_cgroup_should_soft_reclaim(sc);
> > +	unsigned long nr_scanned = sc->nr_scanned;
> > +	unsigned nr_shrunk;
> > +
> > +	nr_shrunk = __shrink_zone(zone, sc, do_soft_reclaim);
> > +
> > +	/*
> > +	 * No group is over the soft limit or those that are do not have
> > +	 * pages in the zone we are reclaiming so we have to reclaim everybody
> > +	 */
> > +	if (do_soft_reclaim && (!nr_shrunk || sc->nr_scanned == nr_scanned)) {
> 
> If no pages were scanned you are doing a second pass regardless of
> nr_shrunk.  If pages were scanned, nr_shrunk must have been increased
> as well.  So I think you can remove all the nr_shrunk counting and
> just check for scanned pages, no?

Yes you are right. I have started with nr_shrunk part only and then
realized that no scaning could be a problem so I've just added it. I
didn't optimize it yet.
I will remove nr_shrunk part in later versions.

Thanks
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]