|
@@ -519,16 +519,6 @@ struct cg_proto *tcp_proto_cgroup(struct mem_cgroup *memcg)
|
|
|
}
|
|
|
EXPORT_SYMBOL(tcp_proto_cgroup);
|
|
|
|
|
|
-static void disarm_sock_keys(struct mem_cgroup *memcg)
|
|
|
-{
|
|
|
- if (!memcg_proto_activated(&memcg->tcp_mem))
|
|
|
- return;
|
|
|
- static_key_slow_dec(&memcg_socket_limit_enabled);
|
|
|
-}
|
|
|
-#else
|
|
|
-static void disarm_sock_keys(struct mem_cgroup *memcg)
|
|
|
-{
|
|
|
-}
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_MEMCG_KMEM
|
|
@@ -583,28 +573,8 @@ void memcg_put_cache_ids(void)
|
|
|
struct static_key memcg_kmem_enabled_key;
|
|
|
EXPORT_SYMBOL(memcg_kmem_enabled_key);
|
|
|
|
|
|
-static void disarm_kmem_keys(struct mem_cgroup *memcg)
|
|
|
-{
|
|
|
- if (memcg->kmem_acct_activated)
|
|
|
- static_key_slow_dec(&memcg_kmem_enabled_key);
|
|
|
- /*
|
|
|
- * This check can't live in kmem destruction function,
|
|
|
- * since the charges will outlive the cgroup
|
|
|
- */
|
|
|
- WARN_ON(page_counter_read(&memcg->kmem));
|
|
|
-}
|
|
|
-#else
|
|
|
-static void disarm_kmem_keys(struct mem_cgroup *memcg)
|
|
|
-{
|
|
|
-}
|
|
|
#endif /* CONFIG_MEMCG_KMEM */
|
|
|
|
|
|
-static void disarm_static_keys(struct mem_cgroup *memcg)
|
|
|
-{
|
|
|
- disarm_sock_keys(memcg);
|
|
|
- disarm_kmem_keys(memcg);
|
|
|
-}
|
|
|
-
|
|
|
static struct mem_cgroup_per_zone *
|
|
|
mem_cgroup_zone_zoneinfo(struct mem_cgroup *memcg, struct zone *zone)
|
|
|
{
|
|
@@ -4092,7 +4062,11 @@ static void memcg_deactivate_kmem(struct mem_cgroup *memcg)
|
|
|
|
|
|
static void memcg_destroy_kmem(struct mem_cgroup *memcg)
|
|
|
{
|
|
|
- memcg_destroy_kmem_caches(memcg);
|
|
|
+ if (memcg->kmem_acct_activated) {
|
|
|
+ memcg_destroy_kmem_caches(memcg);
|
|
|
+ static_key_slow_dec(&memcg_kmem_enabled_key);
|
|
|
+ WARN_ON(page_counter_read(&memcg->kmem));
|
|
|
+ }
|
|
|
mem_cgroup_sockets_destroy(memcg);
|
|
|
}
|
|
|
#else
|
|
@@ -4523,8 +4497,6 @@ static void __mem_cgroup_free(struct mem_cgroup *memcg)
|
|
|
free_mem_cgroup_per_zone_info(memcg, node);
|
|
|
|
|
|
free_percpu(memcg->stat);
|
|
|
-
|
|
|
- disarm_static_keys(memcg);
|
|
|
kfree(memcg);
|
|
|
}
|
|
|
|