KHB: Transparent support for large pages
Posted Jun 22, 2006 3:08 UTC (Thu) by ianw
Parent article: KHB: Transparent support for large pages
There is a lot of current work on superpages.
The current Linux approach to large pages is HugeTLB. This is a static approach, and not transparent. People are working on this with things like libhugetlbfs , and I have heard rumors of dynamic, per process hugetlb.
The other approach, as is mentioned, is one that is transparent. Naohiko Shimizu came up with an approach  which was implemented on Alpha, SPARC and i386. This showed good results, but the patch never ended up going anywhere.
Gelato@UNSW is activley working on large page support for Itanium Linux , using a Shimizu inspired approach. Itanium has excellent support for multiple page sizes, and with suitable modifications can use a hardware walker to re-fill the TLB with superpages with very little OS intervention. The project is currently in the hands of a master's student, but even with a hacked together proof of concept we can see great potential .
Clearly, as identified, fragmentation is an issue with larger pages. We are keeping an eye on the above mentioned projects, and others such as Chris Yeoh's work on fragmentation avoidance .
For Itanium, we believe we could get a working superpage implementation with very few overall lines of code difference, as mentioned. There is some doubt about how generic this could be; the Rice paper was implemented as a FreeBSD module using hooks into the VM layer; not an easy proposition with Linux.
Dynamic, transparent superpages are really not suited to the multi-level tree design as used by the Linux VM. There are a range of more suitable page table designs that incorporate support for large, spare address spaces and superpages. To this end, Gelato@UNSW are working on a page table abstraction interface . One of the most promising approaches is a guarded page table , which we are actively developing behind our interface. Our long term goal is to marry a guarded page table with dynamic superpages.
If others are working in this area, please contact us at firstname.lastname@example.org.
to post comments)