aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/slab.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/slab.h')
-rw-r--r--include/linux/slab.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 00efba149222..c0fcf28c15b2 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -116,6 +116,7 @@ struct kmem_cache {
116}; 116};
117#endif 117#endif
118 118
119struct mem_cgroup;
119/* 120/*
120 * struct kmem_cache related prototypes 121 * struct kmem_cache related prototypes
121 */ 122 */
@@ -125,6 +126,9 @@ int slab_is_available(void);
125struct kmem_cache *kmem_cache_create(const char *, size_t, size_t, 126struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
126 unsigned long, 127 unsigned long,
127 void (*)(void *)); 128 void (*)(void *));
129struct kmem_cache *
130kmem_cache_create_memcg(struct mem_cgroup *, const char *, size_t, size_t,
131 unsigned long, void (*)(void *));
128void kmem_cache_destroy(struct kmem_cache *); 132void kmem_cache_destroy(struct kmem_cache *);
129int kmem_cache_shrink(struct kmem_cache *); 133int kmem_cache_shrink(struct kmem_cache *);
130void kmem_cache_free(struct kmem_cache *, void *); 134void kmem_cache_free(struct kmem_cache *, void *);
@@ -191,15 +195,23 @@ void kmem_cache_free(struct kmem_cache *, void *);
191 * Child caches will hold extra metadata needed for its operation. Fields are: 195 * Child caches will hold extra metadata needed for its operation. Fields are:
192 * 196 *
193 * @memcg: pointer to the memcg this cache belongs to 197 * @memcg: pointer to the memcg this cache belongs to
198 * @list: list_head for the list of all caches in this memcg
199 * @root_cache: pointer to the global, root cache, this cache was derived from
194 */ 200 */
195struct memcg_cache_params { 201struct memcg_cache_params {
196 bool is_root_cache; 202 bool is_root_cache;
197 union { 203 union {
198 struct kmem_cache *memcg_caches[0]; 204 struct kmem_cache *memcg_caches[0];
199 struct mem_cgroup *memcg; 205 struct {
206 struct mem_cgroup *memcg;
207 struct list_head list;
208 struct kmem_cache *root_cache;
209 };
200 }; 210 };
201}; 211};
202 212
213int memcg_update_all_caches(int num_memcgs);
214
203/* 215/*
204 * Common kmalloc functions provided by all allocators 216 * Common kmalloc functions provided by all allocators
205 */ 217 */