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, 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>