The patch titled Subject: mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5 has been added to the -mm tree. Its filename is mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Waiman Long <longman@xxxxxxxxxx> Subject: mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5 It turns out that the previous patch doesn't work if CONFIG_ZONE_DMA isn't defined. Link: https://lkml.kernel.org/r/20210512145107.6208-1-longman@xxxxxxxxxx Signed-off-by: Waiman Long <longman@xxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Shakeel Butt <shakeelb@xxxxxxxxxx> Cc: Roman Gushchin <guro@xxxxxx> Cc: Christoph Lameter <cl@xxxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Pekka Enberg <penberg@xxxxxxxxxx> Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/slab.h | 11 ++++++----- mm/internal.h | 5 ----- mm/memcontrol.c | 2 +- mm/slab_common.c | 9 ++------- 4 files changed, 9 insertions(+), 18 deletions(-) --- a/include/linux/slab.h~mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5 +++ a/include/linux/slab.h @@ -312,16 +312,17 @@ static inline void __check_heap_object(c */ enum kmalloc_cache_type { KMALLOC_NORMAL = 0, -#ifdef CONFIG_MEMCG_KMEM - KMALLOC_CGROUP, -#else +#ifndef CONFIG_ZONE_DMA + KMALLOC_DMA = KMALLOC_NORMAL, +#endif +#ifndef CONFIG_MEMCG_KMEM KMALLOC_CGROUP = KMALLOC_NORMAL, +#else + KMALLOC_CGROUP, #endif KMALLOC_RECLAIM, #ifdef CONFIG_ZONE_DMA KMALLOC_DMA, -#else - KMALLOC_DMA = KMALLOC_NORMAL, #endif NR_KMALLOC_TYPES }; --- a/mm/internal.h~mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5 +++ a/mm/internal.h @@ -116,11 +116,6 @@ extern void putback_lru_page(struct page extern pmd_t *mm_find_pmd(struct mm_struct *mm, unsigned long address); /* - * in mm/memcontrol.c: - */ -extern bool cgroup_memory_nokmem; - -/* * in mm/page_alloc.c */ --- a/mm/memcontrol.c~mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5 +++ a/mm/memcontrol.c @@ -83,7 +83,7 @@ DEFINE_PER_CPU(struct mem_cgroup *, int_ static bool cgroup_memory_nosocket; /* Kernel memory accounting disabled? */ -bool cgroup_memory_nokmem; +static bool cgroup_memory_nokmem; /* Whether the swap controller is active */ #ifdef CONFIG_MEMCG_SWAP --- a/mm/slab_common.c~mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5 +++ a/mm/slab_common.c @@ -841,15 +841,10 @@ void __init setup_kmalloc_cache_index_ta static void __init new_kmalloc_cache(int idx, enum kmalloc_cache_type type, slab_flags_t flags) { - if (type == KMALLOC_RECLAIM) { + if (type == KMALLOC_RECLAIM) flags |= SLAB_RECLAIM_ACCOUNT; - } else if (IS_ENABLED(CONFIG_MEMCG_KMEM) && (type == KMALLOC_CGROUP)) { - if (cgroup_memory_nokmem) { - kmalloc_caches[type][idx] = kmalloc_caches[KMALLOC_NORMAL][idx]; - return; - } + else if (IS_ENABLED(CONFIG_MEMCG_KMEM) && (type == KMALLOC_CGROUP)) flags |= SLAB_ACCOUNT; - } kmalloc_caches[type][idx] = create_kmalloc_cache( kmalloc_info[idx].name[type], _ Patches currently in -mm which might be from longman@xxxxxxxxxx are mm-memcg-move-mod_objcg_state-to-memcontrolc.patch mm-memcg-cache-vmstat-data-in-percpu-memcg_stock_pcp.patch mm-memcg-improve-refill_obj_stock-performance.patch mm-memcg-optimize-user-context-object-stock-access.patch mm-memcg-slab-properly-set-up-gfp-flags-for-objcg-pointer-array.patch mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches.patch mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5.patch mm-memcg-slab-disable-cache-merging-for-kmalloc_normal-caches.patch