Below is a list of materials about Contiguous Memory Allocator (CMA) and topics relating to it which may be of interest.
- Michał Nazarewicz and Marek Szyprowski. 2012. Continuous Memory Allocator, version 24.
- The final patchset that was merged in Linux 3.5.
- Michał Nazarewicz. 2013. Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux. Bachelor’s thesis. WEiTI/ISE, PW, Warsaw.
- 🇵🇱 Diploma thesis in Polish on the Continuous Memory Allocator.
- Michał Nazarewicz. 2012. A Deep Dive into CMA. Linux Weekly News (March 2012).
- A description of the way to integrate CMA with an architecture as well as short summary of how exactly CMA works.
- Michał Nazarewicz. 2012. Deep Dive into Contiguous Memory Allocator.
- A description of how to use and integrate CMA with an architecture. It is a first part of an extended version of the above LWN article and as such it includes much more details.
- Michał Nazarewicz. 2012. Contiguous Memory Allocator: Allocating Big Chunks of Physically Contiguous Memory. LinuxCon Europe, Barcelona, Spain.
- The presentation from the LinuxCon Europe (LCE) 2012 about CMA.
- Barry Song. 2012. A Simple Kernel Module as a Helper to Test CMA, vrsien 4.
- A short and simple driver that can be used to test CMA as well as see how it is used.
- Jonathan Corbet. 2011. A Reworked Contiguous Memory Allocator. Linux Weekly News (June 2011).
- An overwiev of the Contiguous Memory Allocator.
- Jonathan Corbet. 2011. CMA and ARM. Linux Weekly News (June 2011).
- An overview of the linear mapping problems CMA had on ARM platforms, and why the early fixups are required.
- Laura Abbott. 2012. Revoke LRU when trying to drop buffers.
- Patch which tries to improve CMA’s performance by removing buffer from LRU prior to migration. The thread also mentiones problem with ext4 not supporting migration of journal pages.
- Jonathan Corbet. 2010. Memory Compaction. Linux Weekly News (January 2010).
- An overview of Mel Gorman’s compaction patches. Compaction code is used by CMA for scanning for and migrating non-free pages.
- Jonathan Corbet. 2009. Transcendent memory. Linux Weekly News (July 2009).
- Overwiev of an idea behind and implementation of the transcendent memory. Such memory can be marked ‘ephemeral’ which means that kernel can discard it if it wishes to.
- Jonathan Corbet. 2011.
POSIX_FADV_VOLATILE. Linux Weekly News (November 2011). - An overwiev of John Stultz’s
POSIX_FADV_VOLATILE implementation which is one of the things that CMA work with nicely. - Minchan Kim. 2012. Discard clean pages during contiguous allocation instead of migration.
- Patch changing CMA so that clean pages are discarded instead of migrating which improves CMA’s performance.