I am sorry, that I am answering that late but I didn't get to this sooner. On Mon 27-06-11 16:18:12, Andrew Morton wrote: > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > > commit d149e3b ("memcg: add the soft_limit reclaim in global direct > reclaim") adds a softlimit hook to shrink_zones(). By this, soft limit is > called as > > try_to_free_pages() > do_try_to_free_pages() > shrink_zones() > mem_cgroup_soft_limit_reclaim() > > Then, direct reclaim is memcg softlimit hint aware, now. > > But, the memory cgroup's "limit" path can call softlimit shrinker. > > try_to_free_mem_cgroup_pages() > do_try_to_free_pages() > shrink_zones() > mem_cgroup_soft_limit_reclaim() > > This will cause a global reclaim when a memcg hits limit. Sorry, I do not get it. How does it cause the global reclaim? Did you mean soft reclaim? > > This is bug. soft_limit_reclaim() should be called when > scanning_global_lru(sc) == true. Agreed > > And the commit adds a variable "total_scanned" for counting softlimit > scanned pages....it's not "total". This patch removes the variable and > update sc->nr_scanned instead of it. This will affect shrink_slab()'s > scan condition but, global LRU is scanned by softlimit and I think this > change makes sense. Yes, the previous semantic was really confusing (part of the scanned accounting is returned by shrink_zones and the other part in sc). This could be ideally a separate change because it fixes a different bug (softlimit is not considered for slab srhinking) > > TODO: avoid too much scanning of a zone when softlimit did enough work. > > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > Cc: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> > Cc: Ying Han <yinghan@xxxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Just in case it is not late yet. Reviewed-by: Michal Hocko <mhocko@xxxxxxx> -- Michal Hocko SUSE Labs SUSE LINUX s.r.o. Lihovarska 1060/12 190 00 Praha 9 Czech Republic -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>