The patch titled Subject: zswap-memcg-accounting-fix has been added to the -mm mm-unstable branch. Its filename is zswap-memcg-accounting-fix.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/zswap-memcg-accounting-fix.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm 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 via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Johannes Weiner <hannes@xxxxxxxxxxx> Subject: zswap-memcg-accounting-fix Fix for CONFIG_SLOB builds: >> mm/memcontrol.c:7467:6: error: redefinition of 'obj_cgroup_may_zswap' bool obj_cgroup_may_zswap(struct obj_cgroup *objcg) ^ include/linux/memcontrol.h:1816:20: note: previous definition is here static inline bool obj_cgroup_may_zswap(struct obj_cgroup *objcg) The header file uses CONFIG_MEMCG_KMEM && CONFIG_ZSWAP to decide on implementation vs dummies; the .c file uses CONFIG_ZSWAP. SLOB builds don't have CONFIG_MEMCG_KMEM (for historical reasons). Gate everything in the code file on CONFIG_MEMCG_KMEM as well for now. Eventually, CONFIG_MEMCG_KMEM should be removed and folded into CONFIG_MEMCG. Link: https://lkml.kernel.org/r/YnwD14zxYjUJPc2w@xxxxxxxxxxx Reported-by: kernel test robot <lkp@xxxxxxxxx> Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/memcontrol.h | 2 +- mm/memcontrol.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) --- a/include/linux/memcontrol.h~zswap-memcg-accounting-fix +++ a/include/linux/memcontrol.h @@ -254,7 +254,7 @@ struct mem_cgroup { /* Range enforcement for interrupt charges */ struct work_struct high_work; -#ifdef CONFIG_ZSWAP +#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_ZSWAP) unsigned long zswap_max; #endif --- a/mm/memcontrol.c~zswap-memcg-accounting-fix +++ a/mm/memcontrol.c @@ -1398,7 +1398,7 @@ static const struct memory_stat memory_s { "sock", MEMCG_SOCK }, { "vmalloc", MEMCG_VMALLOC }, { "shmem", NR_SHMEM }, -#ifdef CONFIG_ZSWAP +#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_ZSWAP) { "zswap", MEMCG_ZSWAP_B }, { "zswapped", MEMCG_ZSWAPPED }, #endif @@ -1517,7 +1517,7 @@ static char *memory_stat_format(struct m seq_buf_printf(&s, "%s %lu\n", vm_event_name(PGLAZYFREED), memcg_events(memcg, PGLAZYFREED)); -#ifdef CONFIG_ZSWAP +#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_ZSWAP) seq_buf_printf(&s, "%s %lu\n", vm_event_name(ZSWPIN), memcg_events(memcg, ZSWPIN)); seq_buf_printf(&s, "%s %lu\n", vm_event_name(ZSWPOUT), @@ -5184,7 +5184,7 @@ mem_cgroup_css_alloc(struct cgroup_subsy page_counter_set_high(&memcg->memory, PAGE_COUNTER_MAX); memcg->soft_limit = PAGE_COUNTER_MAX; -#ifdef CONFIG_ZSWAP +#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_ZSWAP) memcg->zswap_max = PAGE_COUNTER_MAX; #endif page_counter_set_high(&memcg->swap, PAGE_COUNTER_MAX); @@ -7451,7 +7451,7 @@ static struct cftype memsw_files[] = { { }, /* terminate */ }; -#ifdef CONFIG_ZSWAP +#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_ZSWAP) /** * obj_cgroup_may_zswap - check if this cgroup can zswap * @objcg: the object cgroup @@ -7582,7 +7582,7 @@ static struct cftype zswap_files[] = { }, { } /* terminate */ }; -#endif /* CONFIG_ZSWAP */ +#endif /* CONFIG_MEMCG_KMEM && CONFIG_ZSWAP */ /* * If mem_cgroup_swap_init() is implemented as a subsys_initcall() @@ -7602,7 +7602,7 @@ static int __init mem_cgroup_swap_init(v WARN_ON(cgroup_add_dfl_cftypes(&memory_cgrp_subsys, swap_files)); WARN_ON(cgroup_add_legacy_cftypes(&memory_cgrp_subsys, memsw_files)); -#ifdef CONFIG_ZSWAP +#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_ZSWAP) WARN_ON(cgroup_add_dfl_cftypes(&memory_cgrp_subsys, zswap_files)); #endif return 0; _ Patches currently in -mm which might be from hannes@xxxxxxxxxxx are documentation-filesystems-proc-update-meminfo-section.patch documentation-filesystems-proc-update-meminfo-section-fix.patch mm-kconfig-move-swap-and-slab-config-options-to-the-mm-section.patch mm-kconfig-group-swap-slab-hotplug-and-thp-options-into-submenus.patch mm-kconfig-group-swap-slab-hotplug-and-thp-options-into-submenus-fix.patch mm-kconfig-simplify-zswap-configuration.patch mm-zswap-add-basic-meminfo-and-vmstat-coverage.patch zswap-memcg-accounting.patch zswap-memcg-accounting-fix.patch