aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@cmpxchg.org>2016-01-14 18:21:34 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-14 19:00:49 -0500
commitef12947c9c5a96af549c49f10e5503f0612a397c (patch)
tree451cedbe700b86411cc95c7bf27b02e967ff0fc9
parent8e8ae645249b85c8ed6c178557f8db8613a6bcc7 (diff)
mm: memcontrol: switch to the updated jump-label API
According to <linux/jump_label.h> the direct use of struct static_key is deprecated. Update the socket and slab accounting code accordingly. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: David S. Miller <davem@davemloft.net> Reported-by: Jason Baron <jbaron@akamai.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/memcontrol.h8
-rw-r--r--mm/memcontrol.c12
-rw-r--r--net/ipv4/tcp_memcontrol.c4
3 files changed, 12 insertions, 12 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index c5a51039df57..2292468f2a30 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -704,8 +704,8 @@ void sock_release_memcg(struct sock *sk);
704bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages); 704bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages);
705void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages); 705void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages);
706#if defined(CONFIG_MEMCG) && defined(CONFIG_INET) 706#if defined(CONFIG_MEMCG) && defined(CONFIG_INET)
707extern struct static_key memcg_sockets_enabled_key; 707extern struct static_key_false memcg_sockets_enabled_key;
708#define mem_cgroup_sockets_enabled static_key_false(&memcg_sockets_enabled_key) 708#define mem_cgroup_sockets_enabled static_branch_unlikely(&memcg_sockets_enabled_key)
709static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) 709static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg)
710{ 710{
711#ifdef CONFIG_MEMCG_KMEM 711#ifdef CONFIG_MEMCG_KMEM
@@ -727,7 +727,7 @@ static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg)
727#endif 727#endif
728 728
729#ifdef CONFIG_MEMCG_KMEM 729#ifdef CONFIG_MEMCG_KMEM
730extern struct static_key memcg_kmem_enabled_key; 730extern struct static_key_false memcg_kmem_enabled_key;
731 731
732extern int memcg_nr_cache_ids; 732extern int memcg_nr_cache_ids;
733void memcg_get_cache_ids(void); 733void memcg_get_cache_ids(void);
@@ -743,7 +743,7 @@ void memcg_put_cache_ids(void);
743 743
744static inline bool memcg_kmem_enabled(void) 744static inline bool memcg_kmem_enabled(void)
745{ 745{
746 return static_key_false(&memcg_kmem_enabled_key); 746 return static_branch_unlikely(&memcg_kmem_enabled_key);
747} 747}
748 748
749static inline bool memcg_kmem_is_active(struct mem_cgroup *memcg) 749static inline bool memcg_kmem_is_active(struct mem_cgroup *memcg)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index df7f144a5a4b..54eae4f19d80 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -346,7 +346,7 @@ void memcg_put_cache_ids(void)
346 * conditional to this static branch, we'll have to allow modules that does 346 * conditional to this static branch, we'll have to allow modules that does
347 * kmem_cache_alloc and the such to see this symbol as well 347 * kmem_cache_alloc and the such to see this symbol as well
348 */ 348 */
349struct static_key memcg_kmem_enabled_key; 349DEFINE_STATIC_KEY_FALSE(memcg_kmem_enabled_key);
350EXPORT_SYMBOL(memcg_kmem_enabled_key); 350EXPORT_SYMBOL(memcg_kmem_enabled_key);
351 351
352#endif /* CONFIG_MEMCG_KMEM */ 352#endif /* CONFIG_MEMCG_KMEM */
@@ -2907,7 +2907,7 @@ static int memcg_activate_kmem(struct mem_cgroup *memcg,
2907 err = page_counter_limit(&memcg->kmem, nr_pages); 2907 err = page_counter_limit(&memcg->kmem, nr_pages);
2908 VM_BUG_ON(err); 2908 VM_BUG_ON(err);
2909 2909
2910 static_key_slow_inc(&memcg_kmem_enabled_key); 2910 static_branch_inc(&memcg_kmem_enabled_key);
2911 /* 2911 /*
2912 * A memory cgroup is considered kmem-active as soon as it gets 2912 * A memory cgroup is considered kmem-active as soon as it gets
2913 * kmemcg_id. Setting the id after enabling static branching will 2913 * kmemcg_id. Setting the id after enabling static branching will
@@ -3646,7 +3646,7 @@ static void memcg_destroy_kmem(struct mem_cgroup *memcg)
3646{ 3646{
3647 if (memcg->kmem_acct_activated) { 3647 if (memcg->kmem_acct_activated) {
3648 memcg_destroy_kmem_caches(memcg); 3648 memcg_destroy_kmem_caches(memcg);
3649 static_key_slow_dec(&memcg_kmem_enabled_key); 3649 static_branch_dec(&memcg_kmem_enabled_key);
3650 WARN_ON(page_counter_read(&memcg->kmem)); 3650 WARN_ON(page_counter_read(&memcg->kmem));
3651 } 3651 }
3652 tcp_destroy_cgroup(memcg); 3652 tcp_destroy_cgroup(memcg);
@@ -4282,7 +4282,7 @@ mem_cgroup_css_online(struct cgroup_subsys_state *css)
4282 4282
4283#ifdef CONFIG_INET 4283#ifdef CONFIG_INET
4284 if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket) 4284 if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket)
4285 static_key_slow_inc(&memcg_sockets_enabled_key); 4285 static_branch_inc(&memcg_sockets_enabled_key);
4286#endif 4286#endif
4287 4287
4288 /* 4288 /*
@@ -4333,7 +4333,7 @@ static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
4333 memcg_destroy_kmem(memcg); 4333 memcg_destroy_kmem(memcg);
4334#ifdef CONFIG_INET 4334#ifdef CONFIG_INET
4335 if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket) 4335 if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket)
4336 static_key_slow_dec(&memcg_sockets_enabled_key); 4336 static_branch_dec(&memcg_sockets_enabled_key);
4337#endif 4337#endif
4338 __mem_cgroup_free(memcg); 4338 __mem_cgroup_free(memcg);
4339} 4339}
@@ -5557,7 +5557,7 @@ void mem_cgroup_replace_page(struct page *oldpage, struct page *newpage)
5557 5557
5558#ifdef CONFIG_INET 5558#ifdef CONFIG_INET
5559 5559
5560struct static_key memcg_sockets_enabled_key; 5560DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key);
5561EXPORT_SYMBOL(memcg_sockets_enabled_key); 5561EXPORT_SYMBOL(memcg_sockets_enabled_key);
5562 5562
5563void sock_update_memcg(struct sock *sk) 5563void sock_update_memcg(struct sock *sk)
diff --git a/net/ipv4/tcp_memcontrol.c b/net/ipv4/tcp_memcontrol.c
index 9a22e2dfd64a..18bc7f745e9c 100644
--- a/net/ipv4/tcp_memcontrol.c
+++ b/net/ipv4/tcp_memcontrol.c
@@ -34,7 +34,7 @@ void tcp_destroy_cgroup(struct mem_cgroup *memcg)
34 return; 34 return;
35 35
36 if (memcg->tcp_mem.active) 36 if (memcg->tcp_mem.active)
37 static_key_slow_dec(&memcg_sockets_enabled_key); 37 static_branch_dec(&memcg_sockets_enabled_key);
38} 38}
39 39
40static int tcp_update_limit(struct mem_cgroup *memcg, unsigned long nr_pages) 40static int tcp_update_limit(struct mem_cgroup *memcg, unsigned long nr_pages)
@@ -65,7 +65,7 @@ static int tcp_update_limit(struct mem_cgroup *memcg, unsigned long nr_pages)
65 * because when this value change, the code to process it is not 65 * because when this value change, the code to process it is not
66 * patched in yet. 66 * patched in yet.
67 */ 67 */
68 static_key_slow_inc(&memcg_sockets_enabled_key); 68 static_branch_inc(&memcg_sockets_enabled_key);
69 memcg->tcp_mem.active = true; 69 memcg->tcp_mem.active = true;
70 } 70 }
71 71