Contiguous Memory Allocator resources
- Posted by Michał ‘mina86’ Nazarewicz on 31st of March 2016
- Share on Bluesky
- Cite
@misc{cma24, author = {Nazarewicz, Michał and Szyprowski, Marek}, title = {{Continuous Memory Allocator}, version 24}, year = 2012, month = apr, day = 03, url = {https://marc.info/?l=linux-mm&m=133346232109122}, messageid = {1333462221-3987-1-git-send-email-m.szyprowski@samsung.com} } @inproceedings{nazarewicz2012lce, title = {{Contiguous Memory Allocator}: {Allocating} Big Chunks of Physically Contiguous Memory}, author = {Nazarewicz, Michał}, booktitle = {LinuxCon Europe}, year = 2012, month = nov, day = 06, address = {Barcelona, Spain}, url = {https://mina86.com/2012/cma-on-lce-elce-2012/} } @article{nazarewicz212lwn, author = {Nazarewicz, Michał}, title = {A Deep Dive into {CMA}}, journal = {Linux Weekly News}, year = 2012, month = mar, day = 13, url = {https://lwn.net/Articles/486301/} } @misc{nazarewicz2012deep, title = {Deep Dive into {Contiguous Memory Allocator}}, author = {Nazarewicz, Michał}, year = 2012, month = jun, day = 10, url = {https://mina86.com/2012/deep-dive-into-contiguous-memory-allocator-part-i/}, } @mastersthesis{nazarewicz2013bsc, title = {Alokacja ciągłych fizycznie obszarów pamięci w systemie {Linux}}, author = {Nazarewicz, Michał}, year = 2013, school = {WEiTI/ISE, PW}, address = {Warsaw}, type = {Bachelor’s thesis}, urn = {urn:pw-repo:WUT2a4eca3283974485823865112329121d}, url = {https:/mina86.com/2013/cma-po-polsku/} } @article{corbet447405, author = {Corbet, Jonathan}, title = {A Reworked {Contiguous Memory Allocator}}, year = 2011, month = jun, day = 12, journal = {Linux Weekly News}, publisher = {Eklektix}, url = {https://lwn.net/Articles/447405/} } @article{corbet450286, author = {Corbet, Jonathan}, title = {{CMA} and {ARM}}, year = 2011, month = jun, day = 05, journal = {Linux Weekly News}, publisher = {Eklektix}, url = {https://lwn.net/Articles/450286/} } @article{corbet368869, author = {Corbet, Jonathan}, title = {Memory Compaction}, year = 2010, month = jan, day = 06, journal = {Linux Weekly News}, publisher = {Eklektix}, url = {https://lwn.net/Articles/368869/} } @article{corbet340080, author = {Corbet, Jonathan}, title = {Transcendent memory}, year = 2009, month = jul, day = 08, journal = {Linux Weekly News}, publisher = {Eklektix}, url = {https://lwn.net/Articles/340080/} } @article{corbet468896, author = {Corbet, Jonathan}, title = {{POSIX\_FADV_VOLATILE}}, year = 2011, month = nov, day = 22, journal = {Linux Weekly News}, publisher = {Eklektix}, url = {https://lwn.net/Articles/468896/} } @misc{song, author = {Song, Barry}, title = {A Simple Kernel Module as a Helper to Test {CMA}, v. 4}, year = 2012, month = mar, day = 07, url = {https://marc.info/?l=linux-kernel&m=133112038122899}, messageid = {1331120259-30780-1-git-send-email-Barry.Song@csr.com} } @misc{kim, author = {Kim, Minchan}, title = {Discard clean pages during contiguous allocation instead of migration}, year = 2012, month = sep, day = 11, url = {https://marc.info/?l=linux-kernel&m=134732408014915}, messageid = {1347324112-14134-1-git-send-email-minchan@kernel.org} } @misc{abbott, author = {Abbott, Laura}, title = {Revoke {LRU} when trying to drop buffers}, year = 2012, month = sep, day = 11, url = {https://marc.info/?l=linux-kernel&m=134738454404157}, messageid = {1347384529-5862-1-git-send-email-lauraa@codeaurora.org} }
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.