LinuxMM:

Where might the Linux MM be headed in years to come? If you are doing any (Linux or other) MM related research, please add a blurb and any links to your work here.

Research wanted

A few years ago, Rik put up a web page outlining why [http://surriel.com/research_wanted VM research is needed]. In the early 1980's a lot of poeple were of the opinion that "everything there is to know about memory management has been done". This is like saying we will never need a sort algorithm besides bubble sort. Both 1970's VM knowledge and bubble sort have been obsoleted by scalability issues, and research is needed again...

If you know of a specific problem area that could use research, please add it to the /ResearchWanted page.

Superpages

Superpages utilise the ability of many processors to use not just a base page size, but multiples of it. In the current kernel we have the HugeTLB system, which is suitable for x86 which has only two possible page sizes; small (4K) or huge (4MB). Other systems, such as IA64 can have many page sizes inbetween, and you can greatly reduce TLB usage by mapping in larger pages.

Gelato@UNSW

Gelato@UNSW are researching superpage for IA64. For more information on superpages in general, and our approach in specific, see

http://www.gelato.unsw.edu.au/IA64wiki/SuperPages

Page Table Abstraction

3/4 Level page tables aren't a great solution for a sparsely populated 64 bit address space. However, internally the kernel is very much tied to the PGD/PMD/PTE structure for page tables (stemming from it's x86 heratige where this is the most sensible solution).

For research into other methods, we would like to be able to abstract the page table implementation from the kernel.

Gelato@UNSW

Gelato@UNSW are looking at methods to abstract the Linux page tables.

http://www.gelato.unsw.edu.au/IA64wiki/PageTableInterface

Alternate Page Tables

Alternate page table implemenations such as a variable radix page table might make for better performing systems.

Gelato@UNSW

Information on the variable radix page table

http://www.gelato.unsw.edu.au/IA64wiki/VariableRadixPageTables

Benchmarking

Benchmarking File System Benchmarks

http://www.filesystems.org/docs/fsbench/

ZCAV effect

Observing the Effects of Multi-Zone Disks

http://www.isi.edu/netstation/zcav/

Bonnie++ ZCAV testing program

http://www.coker.com.au/bonnie++/zcav/

Fragmentation (Avoidance)

Chunk allocation

A team at the IBM LTC is currently investigating a new memory management technique to reduce memory fragmentation to better support, for example, large-pages. Memory is handed out to a consumer (e.g., a process or group of files) in larger (variable-sized) chunks and then internally sub-allocated by that consumer to handle its needs. All the memory handed out to a single consumer has the same expected lifetime, e.g., the computation memory handed to a process has the expected lifetime of that process. Hence, handing out contiguous memory to that consumer naturally avoids fragmentation. We also expect we can achieve performance improvements due to reduced synchronization and more cache friendly data structures.

A presentation of the work done so far was given at Linux.conf.au 2006 and the slides are available here:

http://ozlabs.org/~cyeoh/presentations/memory_management_lca2006.pdf

The current implementation has been done on K42 (http://www.research.ibm.com/K42/) but we are currently looking at implementing it in Linux. Some more info which is mostly K42 specific is on the K42 wiki here:

http://k42.ozlabs.org/Wiki/PageDescriptorArrays

LinuxMM: MMResearch (last edited 2006-04-09 17:29:22 by fangorn)