Messages in this thread | | | Date | Fri, 14 Dec 2012 13:07:07 +0100 | From | Michal Hocko <> | Subject | Re: [patch v2 3/6] memcg: rework mem_cgroup_iter to use cgroup iterators |
| |
On Thu 13-12-12 17:14:13, Ying Han wrote: [...] > I haven't tried this patch set yet. Before I am doing that, I am > curious whether changing the target reclaim to be consistent with > global reclaim something worthy to consider based my last reply: > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 53dcde9..3f158c5 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1911,20 +1911,6 @@ static void shrink_zone(struct zone *zone, > struct scan_control *sc) > > shrink_lruvec(lruvec, sc); > > - /* > - * Limit reclaim has historically picked one memcg and > - * scanned it with decreasing priority levels until > - * nr_to_reclaim had been reclaimed. This priority > - * cycle is thus over after a single memcg. > - * > - * Direct reclaim and kswapd, on the other hand, have > - * to scan all memory cgroups to fulfill the overall > - * scan target for the zone. > - */ > - if (!global_reclaim(sc)) { > - mem_cgroup_iter_break(root, memcg); > - break; > - } > memcg = mem_cgroup_iter(root, memcg, &reclaim);
This wouldn't work because you would over-reclaim proportionally to the number of groups in the hierarchy.
> } while (memcg); > } > > --Ying
-- Michal Hocko SUSE Labs
| |