aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab.h
diff options
context:
space:
mode:
authorJoonsoo Kim <iamjoonsoo.kim@lge.com>2014-10-09 18:26:22 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-09 22:25:51 -0400
commit423c929cbbecc60e9c407f9048e58f5422f7995d (patch)
tree34f427883c02de08d9819db705c91ec418411643 /mm/slab.h
parent9163582c3f22cfba90a78749751ac70b127a9167 (diff)
mm/slab_common: commonize slab merge logic
Slab merge is good feature to reduce fragmentation. Now, it is only applied to SLUB, but, it would be good to apply it to SLAB. This patch is preparation step to apply slab merge to SLAB by commonizing slab merge logic. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slab.h')
-rw-r--r--mm/slab.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/mm/slab.h b/mm/slab.h
index 6599f2084e80..c44d28b60609 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -88,15 +88,30 @@ extern void create_boot_cache(struct kmem_cache *, const char *name,
88 size_t size, unsigned long flags); 88 size_t size, unsigned long flags);
89 89
90struct mem_cgroup; 90struct mem_cgroup;
91
92int slab_unmergeable(struct kmem_cache *s);
93struct kmem_cache *find_mergeable(size_t size, size_t align,
94 unsigned long flags, const char *name, void (*ctor)(void *));
91#ifdef CONFIG_SLUB 95#ifdef CONFIG_SLUB
92struct kmem_cache * 96struct kmem_cache *
93__kmem_cache_alias(const char *name, size_t size, size_t align, 97__kmem_cache_alias(const char *name, size_t size, size_t align,
94 unsigned long flags, void (*ctor)(void *)); 98 unsigned long flags, void (*ctor)(void *));
99
100unsigned long kmem_cache_flags(unsigned long object_size,
101 unsigned long flags, const char *name,
102 void (*ctor)(void *));
95#else 103#else
96static inline struct kmem_cache * 104static inline struct kmem_cache *
97__kmem_cache_alias(const char *name, size_t size, size_t align, 105__kmem_cache_alias(const char *name, size_t size, size_t align,
98 unsigned long flags, void (*ctor)(void *)) 106 unsigned long flags, void (*ctor)(void *))
99{ return NULL; } 107{ return NULL; }
108
109static inline unsigned long kmem_cache_flags(unsigned long object_size,
110 unsigned long flags, const char *name,
111 void (*ctor)(void *))
112{
113 return flags;
114}
100#endif 115#endif
101 116
102 117