Performance Characteristics of Explicit Superpage Support
Many modern processors support more than one page size. In the 1990s the larger pages, called superpages, were identified as one means of reducing the time spent servicing Translation Lookaside Buffer (TLB) misses by increasing TLB reach. Transparent usage of superpages has seen limited support due to architectural limitations, the cost of monitoring and implementing promotion/demotion, the uncertainity of whether superpages will be a performance boost and the decreasing cost of TLB misses due to hardware innovations. As significant modifications are required to transparently support superpages, the perception is that the cost of transparency will exceed the benefits for real workloads.
This paper describes how processes can explicitly request memory be backed by superpages that is cross-platform, incurs no measurable cost and is suitable for use in a general operating system. By not impacting base page performance, a baseline metric is established that alternative superpage implementations can compare against. A reservation scheme for superpages is used at mmap() time that guarantees faults without depending on pre-faulting, the fragmentation state of the system or demotion strategies. It is described how to back different regions of memory using explicit superpage support without application modification and present an evaluation of an implementation running a range of workloads.
KeywordsFile Region Java Virtual Machine Page Size Page Fault Address Translation
Unable to display preview. Download preview PDF.
- [POWER03]Wetzel, J., Silha, E., May, C., Frey, B.: PowerPC Operating Environment Architecture Book III v2.01Google Scholar
- [MSSD08]Meuer, H., Strohmaier, E., Simon, H., Dongarra, J.: Top 500 Supercomputers List for (November 2008), http://www.top500.org
- [GOR08]Gorman, M., Healy, P.: Supporting superpage allocation without additional hardware support. In: ISMM 2008: Proceedings of the 7th International Symposium on Memory Management (2008)Google Scholar
- [TALLURI92]Talluri, M., Kong, S., Hill, M.D., Patterson, D.A.: Sun Microsystems Laboratories. Tradeoffs in supporting two page sizes. In: Proceedings of the 19th Annual International Symposium on Computer ArchitectureGoogle Scholar
- [NAV04]Navarro, J.E.: Transparent operating system support for superpages PhD Thesis, Rice University, Houston, TX, USA (2004)Google Scholar
- [CASCAVAL05]Cascaval, C., Duesterwald, E., Sweeney, P.F., Wisniewski, R.W.: Multiple Page Size Modeling and Optimization. In: Proc. 14th International Conference on Parallel Architecture and Compilation TechniquesGoogle Scholar
- [CWH03]Chapman, M., Wienand, I., Heiser, G.: Itanium Page Tables and TLB Technical Report UNSW-CSE-TR-0307, School of Computer Science and Engineering, University of NSW (May 2003)Google Scholar
- [WIENARD08]Wienard, I.: Transparent Large-Page Support for Itanium Linux Masters Thesis, University of NSW (July 2008)Google Scholar
- [MCCALPIN07]McCalpin, J.D.: STREAM: Sustainable Memory Bandwidth in High Performance Computer. In a continually updated technical report, http://www.cs.virginia.edu/stream/
- [GANAPATHY98]Ganapathy, N., Schimmel, C.: General purpose operating system support for multiple page sizes. In: Proceedings of the USENIX Conference, USENIXGoogle Scholar
- [LIBHTLB09]Various Authors, libhugetlbfs 2.7 HOWT. In the libhugetlbfs source tarball, http://sourceforge.net/projects/libhugetlbfs
- [GOR08a]Gorman, M.: Using the Direct Hugepage Allocation API with STREAM In author’s home site, http://www.csn.ul.ie/mel/docs/stream-api