* [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