The commit is pushed to "branch-rh7-3.10.0-229.7.2.vz7.8.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-229.7.2.vz7.8.6 ------> commit 28d232fd4095c371daa0980f5fae9642a30780b1 Author: Vladimir Davydov <vdavy...@parallels.com> Date: Thu Oct 15 17:52:58 2015 +0400
memcg: add mem_cgroup_get/put helpers Patchset description: oom enhancements - part 2 - Patches 1-2 prepare memcg for upcoming changes in oom design. - Patch 3 reworks oom locking design so that the executioner waits for victim to exit. This is necessary to increase oom kill rate, which is essential for berserker mode. - Patch 4 drops unused OOM_SCAN_ABORT - Patch 5 introduces oom timeout. https://jira.sw.ru/browse/PSBM-38581 - Patch 6 makes oom fairer when it comes to selecting a victim among different containers. https://jira.sw.ru/browse/PSBM-37915 - Patch 7 prepares oom for introducing berserker mode - Patch 8 resurrects oom berserker mode, which is supposed to cope with actively forking processes. https://jira.sw.ru/browse/PSBM-17930 https://jira.sw.ru/browse/PSBM-26973 Changes in v3: - rework oom_trylock (patch 3) - select exiting process instead of aborting oom scan so as not to keep busy-waiting for an exiting process to exit (patches 3, 4) - cleanup oom timeout handling + fix stuck process trace dumped multiple times on timeout (patch 5) - set max_overdraft to ULONG_MAX on selected processes (patch 6) - rework oom berserker process selection logic (patches 7, 8) Changes in v2: - s/time_after/time_after_eq to avoid BUG_ON in oom_trylock (patch 4) - propagate victim to the context that initiated oom in oom_unlock (patch 6) - always set oom_end on releasing oom context (patch 6) Vladimir Davydov (8): memcg: add mem_cgroup_get/put helpers memcg: add lock for protecting memcg->oom_notify list oom: rework locking design oom: introduce oom timeout oom: drop OOM_SCAN_ABORT oom: rework logic behind memory.oom_guarantee oom: pass points and overdraft to oom_kill_process oom: resurrect berserker mode Reviewed-by: Kirill Tkhai <ktk...@odin.com> ========================================= This patch description: Equivalent to css_get/put(mem_cgroup_css(memcg)). Currently, only used by af_packet.c, but will also be used by the following patches. Signed-off-by: Vladimir Davydov <vdavy...@parallels.com> --- include/linux/memcontrol.h | 18 ++++++++++++++++++ net/packet/af_packet.c | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index ac3f16f..548a82c 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -139,6 +139,16 @@ static inline bool mem_cgroup_disabled(void) return false; } +static inline void mem_cgroup_get(struct mem_cgroup *memcg) +{ + css_get(mem_cgroup_css(memcg)); +} + +static inline void mem_cgroup_put(struct mem_cgroup *memcg) +{ + css_put(mem_cgroup_css(memcg)); +} + void __mem_cgroup_begin_update_page_stat(struct page *page, bool *locked, unsigned long *flags); @@ -321,6 +331,14 @@ static inline bool mem_cgroup_disabled(void) return true; } +static inline void mem_cgroup_get(struct mem_cgroup *memcg) +{ +} + +static inline void mem_cgroup_put(struct mem_cgroup *memcg) +{ +} + static inline int mem_cgroup_inactive_anon_is_low(struct lruvec *lruvec) { diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index ee9d56b..0bc235e 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -2524,7 +2524,7 @@ static struct cg_proto *packet_sk_charge(void) goto out; out_put_cg: - css_put(mem_cgroup_css(psc->memcg)); + mem_cgroup_put(psc->memcg); out_free_psc: kfree(psc); psc = NULL; @@ -2545,7 +2545,7 @@ static void packet_sk_uncharge(struct cg_proto *cg) if (psc) { memcg_uncharge_kmem(psc->memcg, psc->amt); - css_put(mem_cgroup_css(psc->memcg)); + mem_cgroup_put(psc->memcg); kfree(psc); } } _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel