Contiguous Memory Allocator resources

Below is a list of materials about Contiguous Memory Allocator (or CMA) and topics relating to it which may be of interest.

SDI 2013Z

Prezentacja w języku polskim z seminarium dyplomowego zawiera trochę mniej materiału niż prezentacja z LCE 2012 i nie zagłębia się w szczegółach dotyczących używania mechanizmu CMA. Poza prezentacją dostępny jest również referat z bardziej szczegółowym opisem tematyki prezentacji.

LinuxCon Europe 2012

The presentation from the LinuxCon Europe 2012 is available for download along with it's source code.

CMA patchset

The CMA patchset that has been included in Linux 3.5 can be found on the linux-mm mailing list archives, which can be accessed via Gmane.

Other resources and links

There are some other resources which may be of interest as well.

Nazarewicz, Michał (12 March 2012). “A Deep Dive into CMA”. Linux Weekly News (Eklektix)
A description of the way to integrate CMA with an architecture as well as short summary of how exactly CMA works.
Nazarewicz, Michał (10 June 2012). “Dive into Contiguous Memory Allocator, Part I”.
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.
Song, Barry (7 March 2012). “A Simple Kernel Module as a Helper to Test CMA, v. 4”.
A short and simple driver that can be used to test CMA as well as see how it is used.
Corbet, Jonathan (12 June 2011). “A Reworked Contiguous Memory Allocator”. Linux Weekly News (Eklektix)
An overwiev of the Contiguous Memory Allocator.
Corbet, Jonathan (5 June 2011). “CMA and ARM”. Linux Weekly News (Eklektix)
An overview of the linear mapping problems CMA had on ARM platforms, and why the early fixups are required.
Kim, Minchan (11 September 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.
Abbott, Laura (11 September 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.
Corbet, Jonathan (6 January 2010). “Memory Compaction”. Linux Weekly News (Eklektix)
An overview of Mel Gorman's compaction patches. Compaciotn code is used by CMA for scanning for and migrating non-free pages.
Corbet, Jonathan (8 July 2009) “Transcendent memory”. Linux Weekly News (Eklektix)
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.
Corbet, Jonathan (22 November 2011). “POSIX_FADV_VOLATILE”. Linux Weekly News (Eklektix)
An overwiev of John Stultz's POSIX_FADV_VOLATILE implementation which is one of the things that CMA work with nicely.

If you know of any other resources about or related to CMA, don't hesitate sending them at