Practical, transparent operating system support for superpages

advertisement
Practical, transparent operating
system support for superpages
Juan Navarro, Sitaram Iyer, Peter
Druschel, Alan Cox
OSDI 2002
1
What’s a Superpage?
• A very large page size, much greater than
the base page size
• Supported by most computer architectures
today
• Machines that support superpages usually
have several different page sizes,
beginning with the base page and then in
increasing sizes, each a power of 2 –
today, some as large as a gigabyte.
2
Background Summary
• Virtual memory automates the movement
of a process’s address space (code and
data) between disk and primary memory.
• Virtual addresses are translated using
information stored in the page table.
• Page tables are stored in primary memory.
• Extra memory references due to page
table degrades performance
3
Translation Lookaside Buffer
• TLB (translation lookaside buffer) – faster
memory; caches portions of the page table
• If most memory references “hit” in the
TLB, the overhead of address translation
is acceptable.
• TLB coverage: the amount of memory that
can be accessed strictly through TLB
entries.
4
The Problem
• Computer memories have increased in size
faster than TLBs.
• TLB coverage as a percentage of total
memory has decreased over the years.
– At the time this paper was written, most TLBs
covered a megabyte or less of physical memory
– Many applications have working sets that are not
completely covered by the TLB
• Result: more TLB misses, poorer
performance.
5
The Solution
• Superpages!
• Increase coverage without increasing TLB
size.
• How?
– By increasing amount of memory each TLB
entry can map
6
Hardware-Imposed Constraints
• Must have enough contiguous free memory to
store each superpage
• Superpage addresses (physical and virtual)
must be aligned on the superpage size: e.g., a
64KB SP must start at address 0, or 64KB, or
128KB, etc.
• TLB entry only has one set of bits (R, M, etc.)
and thus can only provide coarse-grained info –
not good for efficient page management.
7
Design Issues
• Issues for a superpage management
system:
– Storage allocation and fragmentation control
– Promotion
– Demotion
– Eviction
8
Issues: Frame Allocation
• When a page fault occurs, must choose a
frame for the new page
– In non-superpage systems any frame will do
– In a superpage system we may later decide to
include this page in a superpage – how does
this affect the decision?
• Possible approaches to allocation:
– Reservation based
– Relocation based
9
Reservation-based Allocation
• When a page is initially loaded choose a
superpage size and reserve aligned,
contiguous frames to hold it.
– As other pages are referenced, load them into
the previously reserved frames
• Will adjoining pages ever be needed by the
program?
10
Object mapping
Mapped pages
Virtual
address
space
Superpage
alignment
boundaries
Physical
address
space
Allocated frames
Unused
page frame
reservation
Figure 2: Reservation based allocation
11
Relocation-based Allocation
• Wait until a superpage is formed, then
move pages to contiguous locations
– Incurs overhead of moving pages when
superpages are created.
• Tradeoff: relocation costs versus unused
reservations (internal fragmentation)
12
Choosing a Page Size
• Regardless of whether reservation-based
or relocation-based allocation is used, size
of superpage must be chosen also.
• When a computer has several page sizes
(base page + several larger sizes), how to
choose which size to use?
• The issue: larger versus smaller
13
Choosing a Page Size
• Possibilities:
– the largest superpage size available
– a superpage size that most closely matches the
VM object the page belongs to
– a smaller size, based on memory availability.
• Tradeoff: possible performance gains from
large page versus possible loss of
contiguous physical memory space that may
be needed later
14
Large Pages?
• Large page sizes increase TLB coverage
the most, optimize I/O.
• But … they can also greatly increase the
memory requirements of a process
– Some pages are only partially filled
– Small localities = a kind of internal
fragmentation (page only partially referenced)
– If pages are not filled or have internal
fragmentation, paging traffic can actually
increase instead of decrease.
15
Small Pages?
• Small page sizes reduce internal
fragmentation (amount of wasted space in
an allocated block & the amount of
unreferenced content in a loaded page).
• But … they have all the problems that
large pages solve, plus they also have the
possibility of causing more page faults.
16
So Why Not Use Multiple Page
Sizes?
• Memory management is more complex
– Uniform page size is simple
• Multiple page sizes causes external
fragmentation
– It’s hard to maintain blocks of contiguous free
space to accommodate large superpages.
17
SP1
SP1
SP2
SP3
SP4 leaves,
is replaced by
SP5.
SP2 leaves.
No room for a
large
superpage
SP3
External
fragmentation
SP5
SP4
18
Fragmentation Control
• Memory can become fragmented with
reservation-based approach and pages of
various sizes.
• Possible solutions:
– Page out or overwrite areas of memory that
haven’t been used recently
– Preempt unused portions of existing
reservations
19
Issues
• Issues for a superpage management
system:
– Allocation and fragmentation control
– Promotion
– Demotion
– Eviction
20
Issues: Promotion
• Initially, base pages are treated normally.
• Promote when enough pages have been loaded
to justify creating a superpage:
– Combine TLB entries into one entry
– Load remaining pages, if necessary, to fill reservation
• Promotion may be incremental
• Tradeoff: early promotion (before all base pages
have been faulted in) reduces TLB misses but
wastes memory if all pages of the superpage are
not needed; late promotion delays benefits of
greater TLB coverage.
21
Issues
• Issues for a superpage management
system:
– Allocation, fragmentation, promotion – done
– Promotion - done
– Demotion & eviction
22
Issues: Demotion
• Reduce superpage size
– To individual base pages
– To a smaller superpage
• All or some of the base pages may have been
chosen for eviction
• Difficulty: use bits and dirty bits in the TLB aren’t
as helpful as if they referred to a base page.
– If the dirty bit is set, the entire superpage must be
written to disk, even if only part of it has changed.
23
Design of System Proposed by
Navarro, et al.
• The system discussed in this paper is
reservation-based.
• It supports multiple superpage sizes to reduce
internal fragmentation
– Effect on external fragmentation?
• It demotes infrequently referenced pages to
reclaim memory frames
• It is able to maintain contiguity (large blocks of
contiguous free frames) without using
compaction
24
Design Decisions in This
System
• With respect to allocation and
fragmentation
– Storage Management
– Reservation-based allocation
• Choosing a page size
– Fragmentation control
25
Storage Management
• Free space (available for reservations) is
stored on multiple lists, ordered by
superpage size
– Buddy system is used for allocation
• Partially filled reservations are kept on a
multi-list (one list for each page size) by
largest page size that can be obtained by
preempting unused portion
• Population maps track allocated portions
of reservations
26
Frame Allocation
• A page fault triggers a decision: does the
page have an existing reservation or not?
• If not, then
– select a preferred SP size,
– locate a set of contiguous, aligned frames
– load the page into the correct (aligned) frame
– enter the mapping in the page table
– reserve the remaining frames
• Or, load the page into a previously
reserved frame & enter mapping in PT
27
Choosing a Superpage Size in the
Navarro System
• Since the decision is made early, can’t
decide based on process’s behavior.
• Base decision on the memory object type;
prefer too large to too small
– If the decision is too large, it is easy to reclaim
the unneeded space
– If the decision is too small, relocation is
needed
28
Guidelines for Choosing
Superpage Size
• For fixed size memory objects (e.g. code
segments) reserve the largest super page
possible that is not too large.
• For dynamic-sized objects (stacks, heaps)
that grow one page at a time: allocate
extra space for growth.
29
Preempting Reservations in the
Navarro System
• After a page fault, if the guidelines call for
a superpage that is too large for any
available free block:
– Reserve a smaller size superpage or
– Preempt an existing reservation that has
enough unallocated frames to satisfy the
request
• This system uses preemption wherever
possible.
30
Preemption Policy - LRA
• Which reservation is preempted if more
than one can satisfy the request?
• Choose the one “whose most recent page
allocation occurred least recently” - LRA
– Reason: spatial locality suggests that related
pages will all be accessed fairly closely
together in time;(e.g., arrays, memory
mapped files). If a reservation hasn’t added
new pages recently, it’s unlikely to do so any
time soon.
31
Fragmentation Control
• Contiguity (of storage) is a contended resource
• Memory becomes fragmented due to
– Multiple page sizes
– Wired pages (can’t be paged out)
• Result: not enough large, properly aligned
blocks of free memory.
• Navarro et al. propose several implementation
techniques to address this problem
32
Fragmentation Control in the
Navarro System*
• The “buddy allocator” (free list manager)
maintains multiple lists of free blocks,
ordered by size
– When possible, coalesce adjacent blocks of
free memory to form larger blocks.
• Modify the page replacement daemon to
include contiguity as one of the factors to
be considered.
33
Navarro System: Design
Decisions
• With respect to promotion, demotion &
eviction
– Incremental promotions
– Speculative demotions
– Paging out dirty superpages
34
Promotion & Demotion
• Navarro et. al. implement incremental
promotion
– e.g., if 4 aligned pages of a 16 page
reservation becomes filled, promote to a midsize superpage
• Demotion: when a base page is evicted,
its superpage is demoted.
– Speculative demotion: demote active
superpages to determine if the whole page is
still in use or just parts
35
Paging Out Dirty Superpages*
• If a dirty superpage is to be flushed to disk, there
is no way to tell if one page is dirty or all pages.
• Writing out the entire superpage is a huge
perfomance hit.
• Navarro, et. al’s solution: Don’t write to clean
superpages.
– If a process tries to write to a SP, demote the SP.
– Repromote later if all base pages are dirty.
• They also experimented with a content hash
which could tell if a page had been changed
36
Goal of Superpage Management
Systems
• Good TLB coverage with minimal internal
fragmentation
• Navarro, et. al. Conclusion: create the
largest superpage possible that isn’t larger
than the size of the memory object (except
for stack/heap).
• If there isn’t enough memory, preempt
existing reservations (these pages had
their chance)
37
Current Usage
• Superpages were most often used at the
time this paper was written to store
portions of the kernel and various buffers.
– Reason: the memory requirements for these
objects are static and can be known in
advance.
– Superpage size can be chosen to fit the
object.
• More likely to be implemented in clusters
and large servers than in desktop
machines.
38
Current Research
• This paper focuses on supporting
superpage use in application memory, as
opposed to kernel memory.
• An ongoing research area: memory
compaction – whenever there are idle
CPU cycles, work to establish large
contiguous blocks of free memory
– Compare to disk management
39
Summary: Potential Advantages of
Superpages
• Ideally, superpages can improve
performance
– Without increasing size of TLB (which would
be expensive and increase TLB access time)
– Without increasing base page size (which can
lead to internal fragmentation)
• Superpages allow use of small (base) and
large (super) page sizes at the same time.
40
Summary - Tradeoff
• Large superpages increase TLB coverage
• Large superpages are more likely to fragment
memory. (Why?)
• Benefits of large superpages must be weighed
against “contiguity restoration techniques”
– Pages loaded into reserved areas must be loaded at
the proper offset.
– Must be enough space for the entire superpage
– More overhead for free space management
41
Authors’ Conclusions
• Can achieve 30%-60% improvement in
performance, based on tests using an
accepted set of benchmark programs as
well as actual applications.
• Must employ contiguity restoration
techniques: demotion, preemption,
compaction
• Must be able to support a variety of page
sizes
42
Conclusion
• Superpage management can be
transparently integrated into an existing
OS (FreeBSD, in this case).
– “hooks” connect the OS to the superpage
module at critical events: page faults, page
allocation, page replacement, etc.
• Tests show this technique scales well,
according to authors.
43
Follow-up
• “Supporting superpage allocation without
additional hardware support”, Mel
Gorman, Patrick Healy, Proceedings of the
7th International Symposium on Memory
Management , 2008
44
Premise
• Fragmentation control is essential for
successful implementation of superpages.
• Navarro’s approach doesn’t always work.
• Major hindrance: “wired” pages – pages
that can’t be paged out or moved – tend to
become scattered throughout memory
• (Navarro addressed this issue; proposed
to monitor creation of kernel wired pages,
cluster them in one location.)
45
• Another problem: page replacement
processes that don’t consider superpage
structure
– Reclaim pages based on age, does not
consider contiguity. [Note: Navarro system
does claim to take this into consideration –
such as activating the paging daemon
whenever the system fails to satisfy a request
for a certain super-page size]
46
GPBM
• Grouping Pages By Mobility (GPBM) is a
placement policy described by Gorman &
Healy that allocates frames to pages
based on whether or not the pages can
later be relocated.
• Treats the address space as if divided into
arenas, which correspond in size to the
largest superpage.
47
Page Mobility Types
• Movable – no restrictions; can be
relocated as long as PT is updated
• Reclaimable – kernel pages that can be
added to the free list (certain kinds of
caches, for example)
• Temporary – pages that are known to be
needed for a short time; treated as
reclaimable
• Non-reclaimable – wired pages
48
How are the classes used?
• Group pages of the same type into arenas
of the same type.
• The number of movable and reclaimable
arenas have the most effect on the
number of superpages that can be
allocated.
• Contiguity-aware page replacement is
used.
49
Summary
• Superpages promise performance improvement but
so far no generally accepted approach for user level
pages.
• Reservation based approach seems to be most
popular
• Contiguity is the biggest problem
• Some researchers propose hardware solutions,
such as re-designing the memory controller to allow
holes in SPs, or re-designing TLB to permit SPs that
consist of non-contiguous base pages.
– To date, no hardware solutions implemented.
50
Download