mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-12 09:32:44 +00:00
memcg: free memcg_caches slot on css offline
We need to look up a kmem_cache in ->memcg_params.memcg_caches arrays only on allocations, so there is no need to have the array entries set until css free - we can clear them on css offline. This will allow us to reuse array entries more efficiently and avoid costly array relocations. Signed-off-by: Vladimir Davydov <vdavydov@parallels.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.cz> Cc: Tejun Heo <tj@kernel.org> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Dave Chinner <david@fromorbit.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f1008365bb
commit
2a4db7eb93
3 changed files with 65 additions and 22 deletions
|
@ -115,13 +115,12 @@ int slab_is_available(void);
|
|||
struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
|
||||
unsigned long,
|
||||
void (*)(void *));
|
||||
#ifdef CONFIG_MEMCG_KMEM
|
||||
void memcg_create_kmem_cache(struct mem_cgroup *, struct kmem_cache *);
|
||||
void memcg_destroy_kmem_caches(struct mem_cgroup *);
|
||||
#endif
|
||||
void kmem_cache_destroy(struct kmem_cache *);
|
||||
int kmem_cache_shrink(struct kmem_cache *);
|
||||
void kmem_cache_free(struct kmem_cache *, void *);
|
||||
|
||||
void memcg_create_kmem_cache(struct mem_cgroup *, struct kmem_cache *);
|
||||
void memcg_deactivate_kmem_caches(struct mem_cgroup *);
|
||||
void memcg_destroy_kmem_caches(struct mem_cgroup *);
|
||||
|
||||
/*
|
||||
* Please use this macro to create slab caches. Simply specify the
|
||||
|
@ -288,6 +287,7 @@ static __always_inline int kmalloc_index(size_t size)
|
|||
|
||||
void *__kmalloc(size_t size, gfp_t flags);
|
||||
void *kmem_cache_alloc(struct kmem_cache *, gfp_t flags);
|
||||
void kmem_cache_free(struct kmem_cache *, void *);
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
void *__kmalloc_node(size_t size, gfp_t flags, int node);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue