linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/20] remove the SLAB allocator
@ 2023-11-13 19:13 Vlastimil Babka
  2023-11-13 19:13 ` [PATCH 01/20] mm/slab: remove CONFIG_SLAB from all Kconfig and Makefile Vlastimil Babka
                   ` (20 more replies)
  0 siblings, 21 replies; 53+ messages in thread
From: Vlastimil Babka @ 2023-11-13 19:13 UTC (permalink / raw)
  To: David Rientjes, Christoph Lameter, Pekka Enberg, Joonsoo Kim
  Cc: Andrew Morton, Hyeonggon Yoo, Roman Gushchin, linux-mm,
	linux-kernel, patches, Andrey Ryabinin, Alexander Potapenko,
	Andrey Konovalov, Dmitry Vyukov, Vincenzo Frascino, Marco Elver,
	Johannes Weiner, Michal Hocko, Shakeel Butt, Muchun Song,
	Kees Cook, kasan-dev, cgroups, Vlastimil Babka

The SLAB allocator has been deprecated since 6.5 and nobody has objected
so far. As we agreed at LSF/MM, we should wait with the removal until
the next LTS kernel is released. AFAIK that version hasn't been
announced yet, but assuming it would be 6.7, we can aim for 6.8 and
start exposing the removal to linux-next during the 6.7 cycle.

To keep the series reasonably sized and not pull in people from other
subsystems than mm and closely related ones, I didn't attempt to remove
every trace of unnecessary reference to dead config options in external
areas, nor in the defconfigs. Such cleanups can be sent to and handled
by respective maintainers after this is merged.

Instead I have added some patches aimed to reap some immediate benefits
of the removal, mainly by not having to split some fastpath code between
slab_common.c and slub.c anymore. But that is also not an exhaustive
effort and I expect more cleanups and optimizations will follow later.

Patch 08 updates CREDITS for the removed mm/slab.c. Please point out if
I missed someone not yet credited.

Git version: https://git.kernel.org/vbabka/l/slab-remove-slab-v1r4

Vlastimil Babka (20):
  mm/slab: remove CONFIG_SLAB from all Kconfig and Makefile
  KASAN: remove code paths guarded by CONFIG_SLAB
  KFENCE: cleanup kfence_guarded_alloc() after CONFIG_SLAB removal
  mm/memcontrol: remove CONFIG_SLAB #ifdef guards
  cpu/hotplug: remove CPUHP_SLAB_PREPARE hooks
  mm/slab: remove CONFIG_SLAB code from slab common code
  mm/mempool/dmapool: remove CONFIG_DEBUG_SLAB ifdefs
  mm/slab: remove mm/slab.c and slab_def.h
  mm/slab: move struct kmem_cache_cpu declaration to slub.c
  mm/slab: move the rest of slub_def.h to mm/slab.h
  mm/slab: consolidate includes in the internal mm/slab.h
  mm/slab: move pre/post-alloc hooks from slab.h to slub.c
  mm/slab: move memcg related functions from slab.h to slub.c
  mm/slab: move struct kmem_cache_node from slab.h to slub.c
  mm/slab: move kfree() from slab_common.c to slub.c
  mm/slab: move kmalloc_slab() to mm/slab.h
  mm/slab: move kmalloc() functions from slab_common.c to slub.c
  mm/slub: remove slab_alloc() and __kmem_cache_alloc_lru() wrappers
  mm/slub: optimize alloc fastpath code layout
  mm/slub: optimize free fast path code layout

 CREDITS                  |   12 +-
 arch/arm64/Kconfig       |    2 +-
 arch/s390/Kconfig        |    2 +-
 arch/x86/Kconfig         |    2 +-
 include/linux/slab.h     |   21 +-
 include/linux/slab_def.h |  124 --
 include/linux/slub_def.h |  204 --
 kernel/cpu.c             |    5 -
 lib/Kconfig.debug        |    1 -
 lib/Kconfig.kasan        |   11 +-
 lib/Kconfig.kfence       |    2 +-
 lib/Kconfig.kmsan        |    2 +-
 mm/Kconfig               |   50 +-
 mm/Kconfig.debug         |   16 +-
 mm/Makefile              |    6 +-
 mm/dmapool.c             |    2 +-
 mm/kasan/common.c        |   13 +-
 mm/kasan/kasan.h         |    3 +-
 mm/kasan/quarantine.c    |    7 -
 mm/kasan/report.c        |    1 +
 mm/kfence/core.c         |    4 -
 mm/memcontrol.c          |    6 +-
 mm/mempool.c             |    6 +-
 mm/slab.c                | 4026 --------------------------------------
 mm/slab.h                |  550 ++----
 mm/slab_common.c         |  231 +--
 mm/slub.c                |  597 +++++-
 27 files changed, 784 insertions(+), 5122 deletions(-)
 delete mode 100644 include/linux/slab_def.h
 delete mode 100644 include/linux/slub_def.h
 delete mode 100644 mm/slab.c

-- 
2.42.1



^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2023-11-14 20:31 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-13 19:13 [PATCH 00/20] remove the SLAB allocator Vlastimil Babka
2023-11-13 19:13 ` [PATCH 01/20] mm/slab: remove CONFIG_SLAB from all Kconfig and Makefile Vlastimil Babka
2023-11-14  4:11   ` Kees Cook
2023-11-14 20:11     ` Vlastimil Babka
2023-11-13 19:13 ` [PATCH 02/20] KASAN: remove code paths guarded by CONFIG_SLAB Vlastimil Babka
2023-11-14  4:13   ` Kees Cook
2023-11-14 12:00   ` Marco Elver
2023-11-13 19:13 ` [PATCH 03/20] KFENCE: cleanup kfence_guarded_alloc() after CONFIG_SLAB removal Vlastimil Babka
2023-11-14  4:14   ` Kees Cook
2023-11-14  7:46   ` Marco Elver
2023-11-13 19:13 ` [PATCH 04/20] mm/memcontrol: remove CONFIG_SLAB #ifdef guards Vlastimil Babka
2023-11-14  4:14   ` Kees Cook
2023-11-14 11:14   ` Michal Hocko
2023-11-13 19:13 ` [PATCH 05/20] cpu/hotplug: remove CPUHP_SLAB_PREPARE hooks Vlastimil Babka
2023-11-14  4:20   ` Kees Cook
2023-11-14 20:12     ` Vlastimil Babka
2023-11-13 19:13 ` [PATCH 06/20] mm/slab: remove CONFIG_SLAB code from slab common code Vlastimil Babka
2023-11-14  4:30   ` Kees Cook
2023-11-14 20:19     ` Vlastimil Babka
2023-11-13 19:13 ` [PATCH 07/20] mm/mempool/dmapool: remove CONFIG_DEBUG_SLAB ifdefs Vlastimil Babka
2023-11-14  4:31   ` Kees Cook
2023-11-13 19:13 ` [PATCH 08/20] mm/slab: remove mm/slab.c and slab_def.h Vlastimil Babka
2023-11-13 19:21   ` Vlastimil Babka
2023-11-14  4:34   ` Kees Cook
2023-11-14  8:06   ` Marco Elver
2023-11-14 20:20     ` Vlastimil Babka
2023-11-13 19:13 ` [PATCH 09/20] mm/slab: move struct kmem_cache_cpu declaration to slub.c Vlastimil Babka
2023-11-14  4:35   ` Kees Cook
2023-11-13 19:13 ` [PATCH 10/20] mm/slab: move the rest of slub_def.h to mm/slab.h Vlastimil Babka
2023-11-14  4:38   ` Kees Cook
2023-11-14 20:21     ` Vlastimil Babka
2023-11-13 19:13 ` [PATCH 11/20] mm/slab: consolidate includes in the internal mm/slab.h Vlastimil Babka
2023-11-14  4:41   ` Kees Cook
2023-11-14 20:24     ` Vlastimil Babka
2023-11-13 19:13 ` [PATCH 12/20] mm/slab: move pre/post-alloc hooks from slab.h to slub.c Vlastimil Babka
2023-11-14  4:42   ` Kees Cook
2023-11-13 19:13 ` [PATCH 13/20] mm/slab: move memcg related functions " Vlastimil Babka
2023-11-14  4:44   ` Kees Cook
2023-11-14 11:15   ` Michal Hocko
2023-11-13 19:13 ` [PATCH 14/20] mm/slab: move struct kmem_cache_node " Vlastimil Babka
2023-11-14  4:44   ` Kees Cook
2023-11-13 19:13 ` [PATCH 15/20] mm/slab: move kfree() from slab_common.c " Vlastimil Babka
2023-11-14  4:45   ` Kees Cook
2023-11-13 19:13 ` [PATCH 16/20] mm/slab: move kmalloc_slab() to mm/slab.h Vlastimil Babka
2023-11-14  4:07   ` Kees Cook
2023-11-13 19:13 ` [PATCH 17/20] mm/slab: move kmalloc() functions from slab_common.c to slub.c Vlastimil Babka
2023-11-14  4:46   ` Kees Cook
2023-11-13 19:13 ` [PATCH 18/20] mm/slub: remove slab_alloc() and __kmem_cache_alloc_lru() wrappers Vlastimil Babka
2023-11-14  4:50   ` Kees Cook
2023-11-14 20:31     ` Vlastimil Babka
2023-11-13 19:14 ` [PATCH 19/20] mm/slub: optimize alloc fastpath code layout Vlastimil Babka
2023-11-13 19:14 ` [PATCH 20/20] mm/slub: optimize free fast path " Vlastimil Babka
2023-11-14 11:18 ` [PATCH 00/20] remove the SLAB allocator Michal Hocko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox