On Thu, May 12, 2011 at 8:10 PM, KAMEZAWA Hiroyuki < kamezawa.hiroyu@jp.fujitsu.com> wrote: > > ZONE_CONGESTED should be a state of global memory reclaim. > If not, a busy memcg sets this and give unnecessary throttoling in > wait_iff_congested() against memory recalim in other contexts. This makes > system performance bad. > > I'll think about "memcg is congested!" flag is required or not, later. > But this fix is required 1st. > Signed-off-by: KAMEZAWA Hiroyuki > --- > mm/vmscan.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Index: mmotm-May11/mm/vmscan.c > =================================================================== > --- mmotm-May11.orig/mm/vmscan.c > +++ mmotm-May11/mm/vmscan.c > @@ -941,7 +941,8 @@ keep_lumpy: > * back off and wait for congestion to clear because further reclaim > * will encounter the same problem > */ > - if (nr_dirty == nr_congested && nr_dirty != 0) > + if (scanning_global_lru(sc) && > + nr_dirty == nr_congested && nr_dirty != 0) > zone_set_flag(zone, ZONE_CONGESTED); > > free_page_list(&free_pages); > > For memcg, wonder if we should make it per-memcg-per-zone congested. Acked-by: Ying Han --Ying