Re: [PATCH V7 1/2] mm: memcg softlimit reclaim rework

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

 



Sprry for my long silence in the last rounds. I was following
discussions but didn't get to step in.

On Mon 30-07-12 15:32:13, Ying Han wrote:
> This patch reverts all the existing softlimit reclaim implementations and
> instead integrates the softlimit reclaim into existing global reclaim logic.
> 
> The new softlimit reclaim includes the following changes:
 
The patch seems to be doing too many things but I do not want to get
into "split it this way or that way" now. It is probably better to have
it like this for now and take care about these details later.

[...]
> 3. forbid setting soft limit on root cgroup
> 
> Setting a soft limit in the root cgroup does not make sense, as soft limits are
> enforced hierarchically and the root cgroup is the hierarchical parent of every
> other cgroup.  It would not provide the discrimination between groups that soft
> limits are usually used for.
> 
> With the current implementation of soft limits, it would only make global reclaim
> more aggressive compared to target reclaim, but we absolutely don't want anyone
> to rely on this behaviour.

Hmm, maybe this one can go in sooner without the rest.

[...]
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 3e0d0cd..59e633c 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -1866,7 +1866,22 @@ static void shrink_zone(struct zone *zone, struct scan_control *sc)
>  	do {
>  		struct lruvec *lruvec = mem_cgroup_zone_lruvec(zone, memcg);
>  
> -		shrink_lruvec(lruvec, sc);
> +		/*
> +		 * Reclaim from mem_cgroup if any of these conditions are met:
> +		 * - this is a targetted reclaim ( not global reclaim)
> +		 * - reclaim priority is less than  DEF_PRIORITY - 2
> +		 * - mem_cgroup or its ancestor ( not including root cgroup)
> +		 * exceeds its soft limit
> +		 *
> +		 * Note: The priority check is a balance of how hard to
> +		 * preserve the pages under softlimit. If the memcgs of the
> +		 * zone having trouble to reclaim pages above their softlimit,
> +		 * we have to reclaim under softlimit instead of burning more
> +		 * cpu cycles.
> +		 */
> +		if (!global_reclaim(sc) || sc->priority < DEF_PRIORITY - 2 ||
> +				mem_cgroup_over_soft_limit(memcg))
> +			shrink_lruvec(lruvec, sc);
>  
>  		/*
>  		 * Limit reclaim has historically picked one memcg and
[...]

Looks quite straightforward. I have to think about it some more but I
like it for starter. Do you have any test results from the overcommitted
system?
-- 
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]