Memory Management Documentation

This is a guide to understanding the memory management subsystem of Linux. If you are looking for advice on simply allocating memory, see the Memory Allocation Guide. For controlling and tuning guides, see the admin guide.

Note

Unfortunately, parts of this guide are still incomplete or missing. While we appreciate contributions, documentation in this area is hard to get right and requires a lot of attention to detail. New contributors should reach out to the relevant maintainers early.

This guide is expected to reflect reality, which requires contributors to have a detailed understanding. Documentation generated with LLMs by contributors unfamiliar with these details shifts the real work onto reviewers, which is why such contributions will be rejected without further comment.

Unsorted Documentation

This is a collection of unsorted documents about the Linux memory management (MM) subsystem internals with different level of details ranging from notes and mailing list responses for elaborating descriptions of data structures and algorithms. It should all be integrated nicely into the above structured documentation, or deleted if it has served its purpose.