diff options
Diffstat (limited to 'include/linux/slab.h')
-rw-r--r-- | include/linux/slab.h | 14 |
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 | ||
119 | struct 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); | |||
125 | struct kmem_cache *kmem_cache_create(const char *, size_t, size_t, | 126 | struct kmem_cache *kmem_cache_create(const char *, size_t, size_t, |
126 | unsigned long, | 127 | unsigned long, |
127 | void (*)(void *)); | 128 | void (*)(void *)); |
129 | struct kmem_cache * | ||
130 | kmem_cache_create_memcg(struct mem_cgroup *, const char *, size_t, size_t, | ||
131 | unsigned long, void (*)(void *)); | ||
128 | void kmem_cache_destroy(struct kmem_cache *); | 132 | void kmem_cache_destroy(struct kmem_cache *); |
129 | int kmem_cache_shrink(struct kmem_cache *); | 133 | int kmem_cache_shrink(struct kmem_cache *); |
130 | void kmem_cache_free(struct kmem_cache *, void *); | 134 | void 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 | */ |
195 | struct memcg_cache_params { | 201 | struct 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 | ||
213 | int 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 | */ |