The commit is pushed to "branch-rh7-3.10.0-123.1.2-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-123.1.2.vz7.5.5 ------> commit 6a541e8212b0bffc602a3fb998a04a5484b21c53 Author: Vladimir Davydov <vdavy...@parallels.com> Date: Mon May 25 13:19:10 2015 +0400
bc/memcg: assure swap->held/maxheld < swap->limit for beancounters Patchset description: ub: fix memcg resource accounting UB_PHYSPAGES, UB_SWAPPAGES, UB_KMEMSIZE are now accounted on the memcg size. However, some stats differ between beancounters and memcg (e.g. failcnt). This patch set fixes them. For more details, see individual patches. Related to https://jira.sw.ru/browse/PSBM-20089 Vladimir Davydov (4): memcg: show correct swap max for beancounters memcg: show correct mem/swap failcnt for beancounters memcg: assure swap->held/maxheld < swap->limit for beancounters ub: deprecate kmemsize limit ================================================================= This patch description: We assume UB_SWAPPAGES held/maxheld is equal to memory.memsw.usage - memory.usage but this can be greater than UB_SWAPPAGES limit, which is defined as memory.memsw.limit - memory.limit e.g. due to global reclaim. Fix that. Signed-off-by: Vladimir Davydov <vdavy...@parallels.com> Reviewed-by: Kirill Tkhai <ktk...@odin.com> --- mm/memcontrol.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 7d7c2e8..ba6fc0f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5184,6 +5184,11 @@ void mem_cgroup_fill_ub_parms(struct cgroup *cg, if (lim != UB_MAXVALUE) lim -= p->limit; s->barrier = s->limit = lim; + + /* Due to global reclaim, memory.memsw.usage can be greater than + * (memory.memsw.limit - memory.limit). */ + s->held = min(s->held, s->limit); + s->maxheld = min(s->maxheld, s->limit); } int mem_cgroup_apply_beancounter(struct cgroup *cg, struct user_beancounter *ub) _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel