mm, slub: don't create kmalloc-rcl caches with CONFIG_SLUB_TINY
Distinguishing kmalloc(__GFP_RECLAIMABLE) can help against fragmentation by grouping pages by mobility, but on tiny systems the extra memory overhead of separate set of kmalloc-rcl caches will probably be worse, and mobility grouping likely disabled anyway. Thus with CONFIG_SLUB_TINY, don't create kmalloc-rcl caches and use the regular ones. Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: Christoph Lameter <cl@linux.com>
This commit is contained in:
parent
90ce872c22
commit
2f7c1c1396
@ -336,12 +336,17 @@ enum kmalloc_cache_type {
|
||||
#endif
|
||||
#ifndef CONFIG_MEMCG_KMEM
|
||||
KMALLOC_CGROUP = KMALLOC_NORMAL,
|
||||
#else
|
||||
KMALLOC_CGROUP,
|
||||
#endif
|
||||
#ifdef CONFIG_SLUB_TINY
|
||||
KMALLOC_RECLAIM = KMALLOC_NORMAL,
|
||||
#else
|
||||
KMALLOC_RECLAIM,
|
||||
#endif
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
KMALLOC_DMA,
|
||||
#endif
|
||||
#ifdef CONFIG_MEMCG_KMEM
|
||||
KMALLOC_CGROUP,
|
||||
#endif
|
||||
NR_KMALLOC_TYPES
|
||||
};
|
||||
|
@ -773,10 +773,16 @@ EXPORT_SYMBOL(kmalloc_size_roundup);
|
||||
#define KMALLOC_CGROUP_NAME(sz)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SLUB_TINY
|
||||
#define KMALLOC_RCL_NAME(sz) .name[KMALLOC_RECLAIM] = "kmalloc-rcl-" #sz,
|
||||
#else
|
||||
#define KMALLOC_RCL_NAME(sz)
|
||||
#endif
|
||||
|
||||
#define INIT_KMALLOC_INFO(__size, __short_size) \
|
||||
{ \
|
||||
.name[KMALLOC_NORMAL] = "kmalloc-" #__short_size, \
|
||||
.name[KMALLOC_RECLAIM] = "kmalloc-rcl-" #__short_size, \
|
||||
KMALLOC_RCL_NAME(__short_size) \
|
||||
KMALLOC_CGROUP_NAME(__short_size) \
|
||||
KMALLOC_DMA_NAME(__short_size) \
|
||||
.size = __size, \
|
||||
@ -862,7 +868,7 @@ void __init setup_kmalloc_cache_index_table(void)
|
||||
static void __init
|
||||
new_kmalloc_cache(int idx, enum kmalloc_cache_type type, slab_flags_t flags)
|
||||
{
|
||||
if (type == KMALLOC_RECLAIM) {
|
||||
if ((KMALLOC_RECLAIM != KMALLOC_NORMAL) && (type == KMALLOC_RECLAIM)) {
|
||||
flags |= SLAB_RECLAIM_ACCOUNT;
|
||||
} else if (IS_ENABLED(CONFIG_MEMCG_KMEM) && (type == KMALLOC_CGROUP)) {
|
||||
if (mem_cgroup_kmem_disabled()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user