Re: [patch v3 -mm 3/3] vmscan, memcg: Do softlimit reclaim also fortargeted reclaim

From: Glauber Costa
Date: Wed May 15 2013 - 04:41:29 EST


On 05/13/2013 11:46 AM, Michal Hocko wrote:
> Soft reclaim has been done only for the global reclaim (both background
> and direct). Since "memcg: integrate soft reclaim tighter with zone
> shrinking code" there is no reason for this limitation anymore as the
> soft limit reclaim doesn't use any special code paths and it is a
> part of the zone shrinking code which is used by both global and
> targeted reclaims.
>
> From semantic point of view it is even natural to consider soft limit
> before touching all groups in the hierarchy tree which is touching the
> hard limit because soft limit tells us where to push back when there is
> a memory pressure. It is not important whether the pressure comes from
> the limit or imbalanced zones.
>
> This patch simply enables soft reclaim unconditionally in
> mem_cgroup_should_soft_reclaim so it is enabled for both global and
> targeted reclaim paths. mem_cgroup_soft_reclaim_eligible needs to learn
> about the root of the reclaim to know where to stop checking soft limit
> state of parents up the hierarchy.
> Say we have
> A (over soft limit)
> \
> B (below s.l., hit the hard limit)
> / \
> C D (below s.l.)
>
> B is the source of the outside memory pressure now for D but we
> shouldn't soft reclaim it because it is behaving well under B subtree
> and we can still reclaim from C (pressumably it is over the limit).
> mem_cgroup_soft_reclaim_eligible should therefore stop climbing up the
> hierarchy at B (root of the memory pressure).
>
> Changes since v1
> - add sc->target_mem_cgroup handling into mem_cgroup_soft_reclaim_eligible
>
> Signed-off-by: Michal Hocko <mhocko@xxxxxxx>
> ---

Reviewed-by: Glauber Costa <glommer@xxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/