CS 443 Advanced OS David R. Choffnes, Spring 2005 Practical, transparent operating system support for superpages Juan Navarro, Sitaram Iyer, Peter Druschel, Alan Cox (Rice University) Appears in: Fifth Symposium on Operating Systems Design and Implementation (OSDI 2002) Presented by: David R. Choffnes
28
Embed
CS 443 Advanced OS David R. Choffnes, Spring 2005 Practical, transparent operating system support for superpages Juan Navarro, Sitaram Iyer, Peter Druschel,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CS 443 Advanced OS
David R. Choffnes, Spring 2005
Practical, transparent operating system support
for superpages
Juan Navarro, Sitaram Iyer, Peter Druschel, Alan Cox
(Rice University)
Appears in: Fifth Symposium on Operating Systems Design and Implementation
(OSDI 2002)
Presented by: David R. Choffnes
2
Outline
The superpage problem
Related Approaches
Design
Implementation
Evaluation
Conclusion
3
Introduction
TLB coverage– Definition– Effect on performance
Superpages– Wasted memory– Fragmentation
Contribution– General, transparent superpages– Deals with fragmentation– Contiguity-aware page replacement algo– Demotion/Eviction of dirty superpages
4
The Superpage Problem
Factor of 1000 decrease in
15 years
TLB miss overhead:
5% 5-10%
30%
TLB coverage trend
TLB coverage of % of main memory
5
The Superpage Problem
Increasing TLB coverage– More TLB entries is expensive– Larger page size leads to internal fragmentation
and increased I/O– Solution: use multiple page sizes
Superpage definition
Hardware-imposed constraints– Finite set of page sizes (subset of powers of 2)– Contiguity– Alignment
How / when / what size to allocate?How / when / what size to allocate?
9
Superpage Issues (Cont.)
Promotion– Incremental– Timing (not too soon, not too late)
Demotion and Eviction– Hardware reference and dirty bit limitation
10
Issue 2: promotion
Promotion: create a superpage out of a set of smaller pages– mark page table entry of each base page
When to promote?
Create small superpage?May waste overhead.
Wait for app to touch pages? May lose opportunity to increase
TLB coverage.
Forcibly populate pages?May cause internal fragmentation.
11
Superpage Issues: Fragmentation
Fragmentation– Memory becomes fragmented due to
• use of multiple page sizes• persistence of file cache pages• scattered wired (non-pageable) pages
– Contiguity as contended resource
12
Related Approaches
HP-UX and IRIX Reservations– Not transparent
Page Relocation– Used exclusively, leads to lower performance due
to increased TLB misses
Hardware Support– Talluri and Hill: Remove contiguity requirement
This approach: Hybrid reservation and relocation system with page replacement that
biases toward pages that contribute to contiguity
13
Design
Reservation-based superpage management
Multiple superpage sizes
Demotion of sparsely referenced superpages
Preservation of contiguity w/o compaction
Efficient disk I/O for partially modified SPs
Uses buddy allocator for contiguous regions
14
Key observation
Once an application touches the first page of a memory object then it is likely that it will
quickly touch every page of that object
Example: array initialization
Opportunistic policies– superpages as large and as soon as possible– as long as no penalty if wrong decision
15
Reservations
Set of frames initially reserved at page fault– Fixed-size objects: largest aligned superpage that
is not larger than the object– Dynamic objects: same as fixed, but reservation is
allowed to extend beyond the end of the object
Preemption– If no available memory for allocation request,
system will preempt the reservation whose most recent page allocation occurred least recently
16
Managing reservations
largest unused (and aligned) chunk
best candidate for preemption at front:best candidate for preemption at front: reservation whose most recently populated reservation whose most recently populated
frame was populated the least recentlyframe was populated the least recently
Incremental promotions– Occurs as soon as a superpage region is fully
populated
Speculative demotion– Occurs on eviction (recursively)– Occurs on first write to clean superpage
• Overhead too high for hash digests
– Daemon periodically demotes pages speculatively• Necessary due to reference bit limitation
18
Incremental promotions
Promotion policy: opportunistic
2
4
4+2
8
19
More Design Issues
Multi-list reservation scheme– One list of each page size supported by hardware– Reservations sorted by allocation recency– Preemption removes from head of list
• Reservation recursively broken into extents• Fully populated extents are not put in reservation lists
FreeBSD uses three lists of pages in A-LRU order: active, inactive, cache
Contiguity-aware page daemon– Cache considered available for allocation– Daemon activated when contiguity falls low– Clean file-backed pages moved to inactive as