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