Skip to content

How to Use This Site

A guide to navigating this documentation effectively.


Reading Paths

New to Kernel Development?

Start here if you're new to the Linux kernel:

  1. Linux Evolution - Understand the history
  2. mm/ Getting Started - Prerequisites and setup
  3. mm/ Overview - The big picture of memory management
  4. Follow the suggested reading order in mm/README.md

Looking for Specific Topics?

Use the Index for a complete listing, or jump directly:

I want to understand... Go to
kmalloc / kfree kmalloc (SLUB)
How memory allocation works Page Allocator, kmalloc
Virtual memory and page tables Page Tables
What happens under memory pressure Page Reclaim
Container memory limits Memory Cgroups
Huge pages THP
A specific term Glossary

Debugging a Problem?

Each page has a "Try It Yourself" section with practical commands:

  • /proc and /sys interfaces to inspect kernel state
  • Tracing commands to observe behavior
  • Test commands to reproduce scenarios

Page Structure

Most pages follow this structure:

  1. What Is X? - Brief explanation
  2. How It Works - Technical details with diagrams
  3. Evolution - Historical context and key commits
  4. Try It Yourself - Practical commands
  5. Further Reading - LKML links, related docs

  • Left sidebar: Browse all pages hierarchically
  • Right sidebar: Jump to sections within current page (table of contents)
  • Search: Use the search bar (top) to find any topic
  • Commit links: [abc123] links go to git.kernel.org
  • LKML links: Links to lore.kernel.org patch discussions
  • Source links: Links to kernel source files

Conventions

Code Blocks

// Kernel C code
void *ptr = kmalloc(size, GFP_KERNEL);
# Shell commands to try
cat /proc/meminfo

Callouts

Note: Important information or caveats

Tables

Used for comparing options, listing files, or summarizing features.


Contributing

Found an error? Have a suggestion?


Destination Link
Home Home
Full Index Index
mm/ Documentation Getting Started
Glossary Glossary