Re: [patch] memcg: skip scanning active lists based on individualsize

From: Rik van Riel
Date: Wed Aug 31 2011 - 14:28:18 EST


On 08/31/2011 05:08 AM, Johannes Weiner wrote:
Reclaim decides to skip scanning an active list when the corresponding
inactive list is above a certain size in comparison to leave the
assumed working set alone while there are still enough reclaim
candidates around.

The memcg implementation of comparing those lists instead reports
whether the whole memcg is low on the requested type of inactive
pages, considering all nodes and zones.

This can lead to an oversized active list not being scanned because of
the state of the other lists in the memcg, as well as an active list
being scanned while its corresponding inactive list has enough pages.

Not only is this wrong, it's also a scalability hazard, because the
global memory state over all nodes and zones has to be gathered for
each memcg and zone scanned.

Make these calculations purely based on the size of the two LRU lists
that are actually affected by the outcome of the decision.

Signed-off-by: Johannes Weiner<jweiner@xxxxxxxxxx>
Cc: Rik van Riel<riel@xxxxxxxxxx>
Cc: KOSAKI Motohiro<kosaki.motohiro@xxxxxxxxxxxxxx>
Cc: KAMEZAWA Hiroyuki<kamezawa.hiroyu@xxxxxxxxxxxxxx>
Cc: Daisuke Nishimura<nishimura@xxxxxxxxxxxxxxxxx>
Cc: Balbir Singh<bsingharora@xxxxxxxxx>

Reviewed-by: Rik van Riel <riel@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/