* [PATCH] docs: Add overview and SLUB allocator sections to slab documentation
@ 2026-04-18 0:06 Nick Huang
2026-04-18 5:04 ` Matthew Wilcox
2026-04-18 6:19 ` Harry Yoo (Oracle)
0 siblings, 2 replies; 5+ messages in thread
From: Nick Huang @ 2026-04-18 0:06 UTC (permalink / raw)
To: Vlastimil Babka, Harry Yoo, Andrew Morton, David Hildenbrand,
Jonathan Corbet
Cc: Hao Li, Christoph Lameter, David Rientjes, Roman Gushchin,
Lorenzo Stoakes, Liam R . Howlett, Mike Rapoport,
Suren Baghdasaryan, Michal Hocko, Shuah Khan, linux-mm,
linux-doc, linux-kernel, Nick Huang
- Add "Overview" section explaining the slab allocator's role and purpose
- Document the three main slab allocator implementations (SLAB, SLUB, SLOB)
- Highlight SLUB as the default allocator on modern systems
- Add "SLUB Allocator" subsection with detailed information:
- Explain SLUB's design goals and advantages over legacy SLAB
- Document its focus on simplification and performance
- Note support for both uniprocessor and SMP systems
Signed-off-by: Nick Huang <sef1548@gmail.com>
---
Documentation/mm/slab.rst | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Documentation/mm/slab.rst b/Documentation/mm/slab.rst
index 2bcc58ada302..2d1d093afb7b 100644
--- a/Documentation/mm/slab.rst
+++ b/Documentation/mm/slab.rst
@@ -4,6 +4,32 @@
Slab Allocation
===============
+Overview
+========
+
+The slab allocator is responsible for efficient allocation and reuse of
+small kernel objects. It reduces internal fragmentation and improves
+performance by caching frequently used objects.
+
+The Linux kernel provides multiple slab allocator implementations,
+including SLAB, SLUB, and SLOB. Among these, SLUB is the default
+allocator on most modern systems.
+
+SLUB Allocator
+==============
+
+Overview
+--------
+
+SLUB is a slab allocator designed to replace the legacy SLAB allocator
+(mm/slab.c). It addresses the complexity, scalability limitations, and
+memory overhead of the SLAB implementation.
+
+The primary goal of SLUB is to simplify slab allocation while improving
+performance on both uniprocessor (UP) and symmetric multiprocessing (SMP)
+systems.
+
+
Functions and structures
========================
--
2.43.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: Add overview and SLUB allocator sections to slab documentation
2026-04-18 0:06 [PATCH] docs: Add overview and SLUB allocator sections to slab documentation Nick Huang
@ 2026-04-18 5:04 ` Matthew Wilcox
2026-04-18 5:27 ` Nick Huang
2026-04-18 6:19 ` Harry Yoo (Oracle)
1 sibling, 1 reply; 5+ messages in thread
From: Matthew Wilcox @ 2026-04-18 5:04 UTC (permalink / raw)
To: Nick Huang
Cc: Vlastimil Babka, Harry Yoo, Andrew Morton, David Hildenbrand,
Jonathan Corbet, Hao Li, Christoph Lameter, David Rientjes,
Roman Gushchin, Lorenzo Stoakes, Liam R . Howlett, Mike Rapoport,
Suren Baghdasaryan, Michal Hocko, Shuah Khan, linux-mm,
linux-doc, linux-kernel
On Sat, Apr 18, 2026 at 12:06:19AM +0000, Nick Huang wrote:
> - Add "Overview" section explaining the slab allocator's role and purpose
> - Document the three main slab allocator implementations (SLAB, SLUB, SLOB)
Umm.
commit 6630e950d532
Author: Vlastimil Babka <vbabka@kernel.org>
Date: Tue Feb 28 15:38:07 2023 +0100
mm/slob: remove slob.c
commit 16a1d968358a
Author: Vlastimil Babka <vbabka@kernel.org>
Date: Mon Oct 2 20:43:43 2023 +0200
mm/slab: remove mm/slab.c and slab_def.h
Care to revise?
> - Highlight SLUB as the default allocator on modern systems
> - Add "SLUB Allocator" subsection with detailed information:
> - Explain SLUB's design goals and advantages over legacy SLAB
> - Document its focus on simplification and performance
> - Note support for both uniprocessor and SMP systems
>
> Signed-off-by: Nick Huang <sef1548@gmail.com>
> ---
> Documentation/mm/slab.rst | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/mm/slab.rst b/Documentation/mm/slab.rst
> index 2bcc58ada302..2d1d093afb7b 100644
> --- a/Documentation/mm/slab.rst
> +++ b/Documentation/mm/slab.rst
> @@ -4,6 +4,32 @@
> Slab Allocation
> ===============
>
> +Overview
> +========
> +
> +The slab allocator is responsible for efficient allocation and reuse of
> +small kernel objects. It reduces internal fragmentation and improves
> +performance by caching frequently used objects.
> +
> +The Linux kernel provides multiple slab allocator implementations,
> +including SLAB, SLUB, and SLOB. Among these, SLUB is the default
> +allocator on most modern systems.
> +
> +SLUB Allocator
> +==============
> +
> +Overview
> +--------
> +
> +SLUB is a slab allocator designed to replace the legacy SLAB allocator
> +(mm/slab.c). It addresses the complexity, scalability limitations, and
> +memory overhead of the SLAB implementation.
> +
> +The primary goal of SLUB is to simplify slab allocation while improving
> +performance on both uniprocessor (UP) and symmetric multiprocessing (SMP)
> +systems.
> +
> +
> Functions and structures
> ========================
>
> --
> 2.43.0
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: Add overview and SLUB allocator sections to slab documentation
2026-04-18 5:04 ` Matthew Wilcox
@ 2026-04-18 5:27 ` Nick Huang
2026-04-18 6:12 ` Nick Huang
0 siblings, 1 reply; 5+ messages in thread
From: Nick Huang @ 2026-04-18 5:27 UTC (permalink / raw)
To: Matthew Wilcox
Cc: Vlastimil Babka, Harry Yoo, Andrew Morton, David Hildenbrand,
Jonathan Corbet, Hao Li, Christoph Lameter, David Rientjes,
Roman Gushchin, Lorenzo Stoakes, Liam R . Howlett, Mike Rapoport,
Suren Baghdasaryan, Michal Hocko, Shuah Khan, linux-mm,
linux-doc, linux-kernel
Matthew Wilcox <willy@infradead.org> 於 2026年4月18日週六 下午1:04寫道:
>
> On Sat, Apr 18, 2026 at 12:06:19AM +0000, Nick Huang wrote:
> > - Add "Overview" section explaining the slab allocator's role and purpose
> > - Document the three main slab allocator implementations (SLAB, SLUB, SLOB)
>
> Umm.
>
> commit 6630e950d532
> Author: Vlastimil Babka <vbabka@kernel.org>
> Date: Tue Feb 28 15:38:07 2023 +0100
>
> mm/slob: remove slob.c
>
> commit 16a1d968358a
> Author: Vlastimil Babka <vbabka@kernel.org>
> Date: Mon Oct 2 20:43:43 2023 +0200
>
> mm/slab: remove mm/slab.c and slab_def.h
>
> Care to revise?
>
Hi Matthew Wilcox
Thanks for pointing this out. You are absolutely right—I overlooked
the fact that SLAB and SLOB have been removed from the kernel.
I will remove those sections and ensure the documentation focuses on
SLUB for the v2 submission. Thanks for the correction.
> > - Highlight SLUB as the default allocator on modern systems
> > - Add "SLUB Allocator" subsection with detailed information:
> > - Explain SLUB's design goals and advantages over legacy SLAB
> > - Document its focus on simplification and performance
> > - Note support for both uniprocessor and SMP systems
> >
> > Signed-off-by: Nick Huang <sef1548@gmail.com>
> > ---
> > Documentation/mm/slab.rst | 26 ++++++++++++++++++++++++++
> > 1 file changed, 26 insertions(+)
> >
> > diff --git a/Documentation/mm/slab.rst b/Documentation/mm/slab.rst
> > index 2bcc58ada302..2d1d093afb7b 100644
> > --- a/Documentation/mm/slab.rst
> > +++ b/Documentation/mm/slab.rst
> > @@ -4,6 +4,32 @@
> > Slab Allocation
> > ===============
> >
> > +Overview
> > +========
> > +
> > +The slab allocator is responsible for efficient allocation and reuse of
> > +small kernel objects. It reduces internal fragmentation and improves
> > +performance by caching frequently used objects.
> > +
> > +The Linux kernel provides multiple slab allocator implementations,
> > +including SLAB, SLUB, and SLOB. Among these, SLUB is the default
> > +allocator on most modern systems.
> > +
> > +SLUB Allocator
> > +==============
> > +
> > +Overview
> > +--------
> > +
> > +SLUB is a slab allocator designed to replace the legacy SLAB allocator
> > +(mm/slab.c). It addresses the complexity, scalability limitations, and
> > +memory overhead of the SLAB implementation.
> > +
> > +The primary goal of SLUB is to simplify slab allocation while improving
> > +performance on both uniprocessor (UP) and symmetric multiprocessing (SMP)
> > +systems.
> > +
> > +
> > Functions and structures
> > ========================
> >
> > --
> > 2.43.0
> >
> >
--
Regards,
Nick Huang
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: Add overview and SLUB allocator sections to slab documentation
2026-04-18 5:27 ` Nick Huang
@ 2026-04-18 6:12 ` Nick Huang
0 siblings, 0 replies; 5+ messages in thread
From: Nick Huang @ 2026-04-18 6:12 UTC (permalink / raw)
To: Matthew Wilcox
Cc: Vlastimil Babka, Harry Yoo, Andrew Morton, David Hildenbrand,
Jonathan Corbet, Hao Li, Christoph Lameter, David Rientjes,
Roman Gushchin, Lorenzo Stoakes, Liam R . Howlett, Mike Rapoport,
Suren Baghdasaryan, Michal Hocko, Shuah Khan, linux-mm,
linux-doc, linux-kernel
Nick Huang <sef1548@gmail.com> 於 2026年4月18日週六 下午1:27寫道:
>
> Matthew Wilcox <willy@infradead.org> 於 2026年4月18日週六 下午1:04寫道:
> >
> > On Sat, Apr 18, 2026 at 12:06:19AM +0000, Nick Huang wrote:
> > > - Add "Overview" section explaining the slab allocator's role and purpose
> > > - Document the three main slab allocator implementations (SLAB, SLUB, SLOB)
Hi Matthew Wilcox
I will remove this sentence in the next version:
“Document the three main slab allocator implementations (SLAB, SLUB, SLOB).”
I’m not entirely sure I fully understand your point. If I’ve missed
anything, please let me know what needs to be changed. Thank you.
> > Umm.
> >
> > commit 6630e950d532
> > Author: Vlastimil Babka <vbabka@kernel.org>
> > Date: Tue Feb 28 15:38:07 2023 +0100
> >
> > mm/slob: remove slob.c
> >
> > commit 16a1d968358a
> > Author: Vlastimil Babka <vbabka@kernel.org>
> > Date: Mon Oct 2 20:43:43 2023 +0200
> >
> > mm/slab: remove mm/slab.c and slab_def.h
> >
> > Care to revise?
> >
> Hi Matthew Wilcox
>
> Thanks for pointing this out. You are absolutely right—I overlooked
> the fact that SLAB and SLOB have been removed from the kernel.
> I will remove those sections and ensure the documentation focuses on
> SLUB for the v2 submission. Thanks for the correction.
>
> > > - Highlight SLUB as the default allocator on modern systems
> > > - Add "SLUB Allocator" subsection with detailed information:
> > > - Explain SLUB's design goals and advantages over legacy SLAB
> > > - Document its focus on simplification and performance
> > > - Note support for both uniprocessor and SMP systems
> > >
> > > Signed-off-by: Nick Huang <sef1548@gmail.com>
> > > ---
> > > Documentation/mm/slab.rst | 26 ++++++++++++++++++++++++++
> > > 1 file changed, 26 insertions(+)
> > >
> > > diff --git a/Documentation/mm/slab.rst b/Documentation/mm/slab.rst
> > > index 2bcc58ada302..2d1d093afb7b 100644
> > > --- a/Documentation/mm/slab.rst
> > > +++ b/Documentation/mm/slab.rst
> > > @@ -4,6 +4,32 @@
> > > Slab Allocation
> > > ===============
> > >
> > > +Overview
> > > +========
> > > +
> > > +The slab allocator is responsible for efficient allocation and reuse of
> > > +small kernel objects. It reduces internal fragmentation and improves
> > > +performance by caching frequently used objects.
> > > +
> > > +The Linux kernel provides multiple slab allocator implementations,
> > > +including SLAB, SLUB, and SLOB. Among these, SLUB is the default
> > > +allocator on most modern systems.
> > > +
> > > +SLUB Allocator
> > > +==============
> > > +
> > > +Overview
> > > +--------
> > > +
> > > +SLUB is a slab allocator designed to replace the legacy SLAB allocator
> > > +(mm/slab.c). It addresses the complexity, scalability limitations, and
> > > +memory overhead of the SLAB implementation.
> > > +
> > > +The primary goal of SLUB is to simplify slab allocation while improving
> > > +performance on both uniprocessor (UP) and symmetric multiprocessing (SMP)
> > > +systems.
> > > +
> > > +
> > > Functions and structures
> > > ========================
> > >
> > > --
> > > 2.43.0
> > >
> > >
>
> --
> Regards,
> Nick Huang
--
Regards,
Nick Huang
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: Add overview and SLUB allocator sections to slab documentation
2026-04-18 0:06 [PATCH] docs: Add overview and SLUB allocator sections to slab documentation Nick Huang
2026-04-18 5:04 ` Matthew Wilcox
@ 2026-04-18 6:19 ` Harry Yoo (Oracle)
1 sibling, 0 replies; 5+ messages in thread
From: Harry Yoo (Oracle) @ 2026-04-18 6:19 UTC (permalink / raw)
To: Nick Huang
Cc: Vlastimil Babka, Andrew Morton, David Hildenbrand,
Jonathan Corbet, Hao Li, Christoph Lameter, David Rientjes,
Roman Gushchin, Lorenzo Stoakes, Liam R . Howlett, Mike Rapoport,
Suren Baghdasaryan, Michal Hocko, Shuah Khan, linux-mm,
linux-doc, linux-kernel
Hi, Nick.
On Sat, Apr 18, 2026 at 12:06:19AM +0000, Nick Huang wrote:
> - Add "Overview" section explaining the slab allocator's role and purpose
> - Document the three main slab allocator implementations (SLAB, SLUB, SLOB)
> - Highlight SLUB as the default allocator on modern systems
> - Add "SLUB Allocator" subsection with detailed information:
> - Explain SLUB's design goals and advantages over legacy SLAB
> - Document its focus on simplification and performance
> - Note support for both uniprocessor and SMP systems
>
> Signed-off-by: Nick Huang <sef1548@gmail.com>
> --0
In case this was assisted by AI or other tools, please disclose that
according to the process document:
https://docs.kernel.org/process/generated-content.html
https://docs.kernel.org/process/coding-assistants.html
Mentioning because some people using tools to develop/document
the kernel are not aware that they need to disclose the fact.
It's better to remind people.
Tools can help only if, you, as a person, understand the design and
tradeoff behind it. I don't think it'd be useful to spend time on
improving document if this is driven by AI tools or something,
not you.
If you're using AI or not, the fact that you're not following recent
changes of the slab allocator worries me a little bit, to be honest.
Well-written design documentation is hard to come by without
understanding the current design.
If you're still willing to improve the doc, please do more research.
> Documentation/mm/slab.rst | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/mm/slab.rst b/Documentation/mm/slab.rst
> index 2bcc58ada302..2d1d093afb7b 100644
> --- a/Documentation/mm/slab.rst
> +++ b/Documentation/mm/slab.rst
> @@ -4,6 +4,32 @@
> +SLUB Allocator
> +==============
> +
> +Overview
> +--------
> +
> +SLUB is a slab allocator designed to replace the legacy SLAB allocator
As Matthew mentioned, SLAB and SLOB were gone.
Also, it isn't really the traditional SLUB we have had anymore.
> +(mm/slab.c). It addresses the complexity, scalability limitations, and
> +memory overhead of the SLAB implementation.
Stating "Compared to SLAB, SLUB addresses X, Y, and Z" is
worth adding only if with a reason explaining why.
If you think SLUB addresses certain problems of SLAB, please explain
what problems are and why they exist, and how SLUB addresses that.
Please make more solid arguments with explanations to support.
> +The primary goal of SLUB is to simplify slab allocation while improving
I don't think traditional SLUB was particularily simple compared
to SLAB, to be honest. It was probably simple at the beginning,
but then more and more complexity has been added later.
> +performance on both uniprocessor (UP) and symmetric multiprocessing (SMP)
> +systems.
SLAB also supported UP and had features to provide scalability on
SMP. Why do you think SLUB particularly improved performance on
them?
> +
> Functions and structures
> ========================
--
Cheers,
Harry / Hyeonggon
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-18 6:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-04-18 0:06 [PATCH] docs: Add overview and SLUB allocator sections to slab documentation Nick Huang
2026-04-18 5:04 ` Matthew Wilcox
2026-04-18 5:27 ` Nick Huang
2026-04-18 6:12 ` Nick Huang
2026-04-18 6:19 ` Harry Yoo (Oracle)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox