slab: Common definition for the array of kmalloc caches
Have a common definition fo the kmalloc cache arrays in SLAB and SLUB Acked-by: Glauber Costa <glommer@parallels.com> Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
committed by
Pekka Enberg
parent
95a05b428c
commit
9425c58e54
@@ -206,6 +206,11 @@ struct kmem_cache {
|
|||||||
#define KMALLOC_MIN_SIZE (1 << KMALLOC_SHIFT_LOW)
|
#define KMALLOC_MIN_SIZE (1 << KMALLOC_SHIFT_LOW)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
|
||||||
|
#ifdef CONFIG_ZONE_DMA
|
||||||
|
extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Figure out which kmalloc slab an allocation of a certain size
|
* Figure out which kmalloc slab an allocation of a certain size
|
||||||
* belongs to.
|
* belongs to.
|
||||||
|
@@ -102,9 +102,6 @@ struct kmem_cache {
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct kmem_cache *kmalloc_caches[PAGE_SHIFT + MAX_ORDER];
|
|
||||||
extern struct kmem_cache *kmalloc_dma_caches[PAGE_SHIFT + MAX_ORDER];
|
|
||||||
|
|
||||||
void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
|
void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
|
||||||
void *__kmalloc(size_t size, gfp_t flags);
|
void *__kmalloc(size_t size, gfp_t flags);
|
||||||
|
|
||||||
|
@@ -122,12 +122,6 @@ struct kmem_cache {
|
|||||||
#define SLUB_DMA (__force gfp_t)0
|
#define SLUB_DMA (__force gfp_t)0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* We keep the general caches in an array of slab caches that are used for
|
|
||||||
* 2^x bytes of allocations.
|
|
||||||
*/
|
|
||||||
extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find the slab cache for a given combination of allocation flags and size.
|
* Find the slab cache for a given combination of allocation flags and size.
|
||||||
*
|
*
|
||||||
|
@@ -318,14 +318,6 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int len,
|
|||||||
static int enable_cpucache(struct kmem_cache *cachep, gfp_t gfp);
|
static int enable_cpucache(struct kmem_cache *cachep, gfp_t gfp);
|
||||||
static void cache_reap(struct work_struct *unused);
|
static void cache_reap(struct work_struct *unused);
|
||||||
|
|
||||||
struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
|
|
||||||
EXPORT_SYMBOL(kmalloc_caches);
|
|
||||||
|
|
||||||
#ifdef CONFIG_ZONE_DMA
|
|
||||||
struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
|
|
||||||
EXPORT_SYMBOL(kmalloc_dma_caches);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int slab_early_init = 1;
|
static int slab_early_init = 1;
|
||||||
|
|
||||||
#define INDEX_AC kmalloc_index(sizeof(struct arraycache_init))
|
#define INDEX_AC kmalloc_index(sizeof(struct arraycache_init))
|
||||||
|
@@ -319,6 +319,14 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
|
||||||
|
EXPORT_SYMBOL(kmalloc_caches);
|
||||||
|
|
||||||
|
#ifdef CONFIG_ZONE_DMA
|
||||||
|
struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
|
||||||
|
EXPORT_SYMBOL(kmalloc_dma_caches);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !CONFIG_SLOB */
|
#endif /* !CONFIG_SLOB */
|
||||||
|
|
||||||
|
|
||||||
|
@@ -3174,13 +3174,6 @@ int __kmem_cache_shutdown(struct kmem_cache *s)
|
|||||||
* Kmalloc subsystem
|
* Kmalloc subsystem
|
||||||
*******************************************************************/
|
*******************************************************************/
|
||||||
|
|
||||||
struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
|
|
||||||
EXPORT_SYMBOL(kmalloc_caches);
|
|
||||||
|
|
||||||
#ifdef CONFIG_ZONE_DMA
|
|
||||||
static struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int __init setup_slub_min_order(char *str)
|
static int __init setup_slub_min_order(char *str)
|
||||||
{
|
{
|
||||||
get_option(&str, &slub_min_order);
|
get_option(&str, &slub_min_order);
|
||||||
|
Reference in New Issue
Block a user