Practical, transparent operating system support for superpages
Juan Navarro, Sitaram Iyer, Peter Druschel, Alan Cox
Abstract
Most general-purpose processors provide support for memory pages of
large sizes, called superpages. Superpages enable each entry in the
translation lookaside buffer (TLB) to map a large physical memory
region into virtual address space. This dramatically increases TLB
coverage, reduces TLB misses, and promises performance improvements
for many applications. However, supporting superpages poses several
challenges to the operating system, in terms of superpage
allocation and promotion tradeoffs, fragmentation control, etc. We
analyze these issues, and propose the design of an effective
superpage management system. We implement it in FreeBSD on the
Alpha CPU, and evaluate it on real workloads and benchmarks. We
obtain substantial performance benefits, often exceeding 30%; these
benefits are sustained even under stressful workload scenarios.