aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGlauber Costa <glommer@parallels.com>2012-12-18 17:23:01 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-18 18:02:14 -0500
commit749c54151a6e5b229e4ae067dbc651e54b161fbc (patch)
tree8d2d858e76e44d1bbf64439c189a57c18c8e60ae /include
parent22933152934f30de6f05b600c03f8a08f853a8d2 (diff)
memcg: aggregate memcg cache values in slabinfo
When we create caches in memcgs, we need to display their usage information somewhere. We'll adopt a scheme similar to /proc/meminfo, with aggregate totals shown in the global file, and per-group information stored in the group itself. For the time being, only reads are allowed in the per-group cache. Signed-off-by: Glauber Costa <glommer@parallels.com> Cc: Christoph Lameter <cl@linux.com> Cc: David Rientjes <rientjes@google.com> Cc: Frederic Weisbecker <fweisbec@redhat.com> Cc: Greg Thelen <gthelen@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: JoonSoo Kim <js1304@gmail.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Michal Hocko <mhocko@suse.cz> Cc: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Rik van Riel <riel@redhat.com> Cc: Suleiman Souhlal <suleiman@google.com> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/memcontrol.h8
-rw-r--r--include/linux/slab.h4
2 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index e119f3ef793c..8dc7c746b44f 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -420,6 +420,11 @@ static inline void sock_release_memcg(struct sock *sk)
420 420
421#ifdef CONFIG_MEMCG_KMEM 421#ifdef CONFIG_MEMCG_KMEM
422extern struct static_key memcg_kmem_enabled_key; 422extern struct static_key memcg_kmem_enabled_key;
423
424extern int memcg_limited_groups_array_size;
425#define for_each_memcg_cache_index(_idx) \
426 for ((_idx) = 0; i < memcg_limited_groups_array_size; (_idx)++)
427
423static inline bool memcg_kmem_enabled(void) 428static inline bool memcg_kmem_enabled(void)
424{ 429{
425 return static_key_false(&memcg_kmem_enabled_key); 430 return static_key_false(&memcg_kmem_enabled_key);
@@ -557,6 +562,9 @@ memcg_kmem_get_cache(struct kmem_cache *cachep, gfp_t gfp)
557 return __memcg_kmem_get_cache(cachep, gfp); 562 return __memcg_kmem_get_cache(cachep, gfp);
558} 563}
559#else 564#else
565#define for_each_memcg_cache_index(_idx) \
566 for (; NULL; )
567
560static inline bool memcg_kmem_enabled(void) 568static inline bool memcg_kmem_enabled(void)
561{ 569{
562 return false; 570 return false;
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 869efb8d2377..b9278663f22a 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -220,6 +220,10 @@ struct memcg_cache_params {
220 220
221int memcg_update_all_caches(int num_memcgs); 221int memcg_update_all_caches(int num_memcgs);
222 222
223struct seq_file;
224int cache_show(struct kmem_cache *s, struct seq_file *m);
225void print_slabinfo_header(struct seq_file *m);
226
223/* 227/*
224 * Common kmalloc functions provided by all allocators 228 * Common kmalloc functions provided by all allocators
225 */ 229 */