Contiguous Memory Allocator resources
- Posted by Michał ‘mina86’ Nazarewicz on 31st of March 2016
- Share on Bluesky
@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.
CMA po polsku
- Posted by Michał ‘mina86’ Nazarewicz on 22nd of January 2013
- Share on Bluesky
@mastersthesis{Nazarewicz2013bsc, title = {Alokacja ciągłych fizycznie obszarów pamięci w systemie {Linux}}, author = {Michał Nazarewicz}, year = 2013, school = {WEiTI/ISE, PW}, address = {Warszawa}, type = {Praca inżynierska}, urn = {urn:pw-repo:WUT2a4eca3283974485823865112329121d}, url = {https:/mina86.com/2013/cma-po-polsku/} }ACM Michał Nazarewicz. 2013. Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux. Praca inżynierska. WEiTI/ISE, PW, Warszawa. https:/mina86.com/2013/cma-po-polsku/ APA Nazarewicz, M. (2013). Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux [Praca inżynierska, WEiTI/ISE, PW]. https:/mina86.com/2013/cma-po-polsku/ IEEE M. Nazarewicz, „Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux,” Praca inżynierska, WEiTI/ISE, PW, Warszawa, 2013. [Online]. https:/mina86.com/2013/cma-po-polsku/ Będę miał dzisiaj przyjemność prezentować Contiguous Memory Allocator na seminarium dyplomowym (CMA jest bowiem tematem mojej pracy). Dostępny jest również referat opisujący z większą zawartość slajdów. Aktualizacja: Z racji, że jestem już po obronie, dodaję również link do pracy inżynierskiej.
Prezentacja nie opisuje sposobu użycia CMA zatem po więcej szczegółów odsyłam do materiałów z LCE 2012. No i oczywiście jest również strona mina86.com/cma/, z której linkuję do przeróżnych materiałów dotyczących CMA.
Synchronizacja w jądrze Linux
- Posted by Michał ‘mina86’ Nazarewicz on 3rd of April 2010
- Share on Bluesky
Prezentacja z seminarium dyplomowego na temat mechanizmów synchronizacji w jądrze Linux. Pokrótce przedstawia bariery pamięci, zmienne atomowe, semafory, spinlocki itp.
Sieci Komputerowe
- Posted by Michał ‘mina86’ Nazarewicz on 16th of June 2008
- Share on Bluesky
Ponownie coś z serii „ja juz zaliczyłem na 5,0, a może komuś się przyda”. Odpowiedzi na pytania przygotowawcze przed kolokwium z przedmiotu Sieci komputerowe II. Jak w przypadku poprzedneigo wpisu, plik ten największą wartość ma dla studentów Elektroniki Politechniki Warszawskiej, ale może też ktoś inny będzie miał ochotę przejrzeć.
Systemy Operacyjne
- Posted by Michał ‘mina86’ Nazarewicz on 16th of June 2008
- Share on Bluesky
Coś z serii „ja już zaliczyłem na pięć, a może komuś się przyda”, czyli przygotowany przeze mnie plik z odpowiedziami na pytania przygotowawcze do egzaminu z przedmiotu Systemy operacyjne. Zapewne największa wartość mają one dla studentów Elektroniki Politechniki Warszawskiej, niemniej jednak może ktoś się tym zainteresuje.
Double-checked locking pattern
- Posted by Michał ‘mina86’ Nazarewicz on 29th of April 2008
- Share on Bluesky
Jakiś czas temu w pewnych okolicznościach poruszony został wzorzec double-checked locking singleton, który jak powszechnie wiadomo nie jest do końca poprawny. Wynikła z tego krótka dyskusja, której kompilację pozwolę sobie wkleić poniżej (gdyż nie jest ona ogólnie dostępna, a nie lubię, gdy informacje się marnują).
Stałość fizyczna i logiczna w C++
- Posted by Michał ‘mina86’ Nazarewicz on 21st of March 2008
- Share on Bluesky
Chciałbym zaprezentować pewien tekst, który przygotowałem na jeden z przedmiotów na studiach. Traktuje on o modyfikatorze
const
imutable
oraz określa pojęcie stałości logicznej czyli niezmienności zachowania obiektu, gdy patrzymy z zewnątrz. Może komuś się to przyda. Czekam również na wszelkie komentarze.