Download presentation
Presentation is loading. Please wait.
Published byNorah Holmes Modified over 9 years ago
1
Transforming Policies into Mechanisms with Infokernel Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Nathan C. Burnett, Timothy E. Denehy, Thomas J. Engle, Haryadi S. Gunawi, James A. Nugent, and Florentina I. Popovici Department of Computer Sciences University of Wisconsin - Madison
2
Policies and Mechanisms Definitions –Policies are schemes for deciding what to do –Mechanisms are tools for implementing policies From user or application perspective –See only fixed OS policies –Defaults may not be the best policies
3
Policies and Mechanisms Definitions –Policies are schemes for deciding what to do –Mechanisms are tools for implementing policies From user or application perspective –See only fixed OS policies –Defaults may not be the best policies How can we transform existing OS policies into useful mechanisms for higher-level services?
4
From Policies to Mechanisms Information empowers transformation OS - Policies Application
5
From Policies to Mechanisms Information empowers transformation OS - Policies (infokernel) Application small changes
6
From Policies to Mechanisms Information empowers transformation OS - Policies (infokernel) Application Information small changes algorithms, state
7
From Policies to Mechanisms Information empowers transformation OS - Policies (infokernel) Application Information small changes algorithms, state Library
8
From Policies to Mechanisms Information empowers transformation OS - Policies (infokernel) Application Information small changes algorithms, state Library exploit predict
9
From Policies to Mechanisms Information empowers transformation OS - Policies (infokernel) Application Information small changes algorithms, state Library exploit predict adapt
10
From Policies to Mechanisms Information empowers transformation OS - Policies (infokernel) Application Information small changes algorithms, state Library exploit predict adapt manipulate
11
Building Infokernels Exploit information to control policies in Linux, BSD File cache replacement –Convert 2Q into FIFO, LRU, MRU, LFU File and directory placement –Control placement of data on disk Disk scheduling –Enable background scheduling and free-block scheduling Network scheduling –Convert TCP Reno into TCP Vegas congestion control
12
Infokernel Observations Policies can be manipulated efficiently Ideas applicable to diverse policies Several useful abstractions Simple to implement
13
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
14
Case Study: InfoReplace Convert a source OS file cache replacement policy into a different target policy Manipulate source policy by accessing cache pages favored by the target policy File Caching (infokernel) Application Information InfoReplace
15
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate…
16
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate 1 LIFO 21 321 421 50% Hit Rate… 421 421
17
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU (source) 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate LIFO (target) 50% Hit Rate… 1 InfoReplace 12 123 1 21 321 421 421 421
18
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU (source) 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate LIFO (target) 50% Hit Rate… 1 InfoReplace 12 231 1 21 321 421 421 421
19
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU (source) 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate LIFO (target) 50% Hit Rate… 1 InfoReplace 12 312 1 21 321 421 421 421
20
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU (source) 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate LIFO (target) 50% Hit Rate… 1 InfoReplace 12 124 312 1 21 321 421 421 421
21
Repeated Sequential Scans Imagine a 3 page cache and a 4 page file 1 Read page 1 LRU (source) 1 Read page 2 2 1 Read page 3 23 2 Read page 4 34 3 Read page 1 41 4 Read page 2 12 0% Hit Rate LIFO (target) 50% Hit Rate… 1 InfoReplace 12 124 241 412 312 50% Hit Rate 1 21 321 421 421 421
22
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
23
Amount of Information InfoReplace –Could export exact file page cache structures Specific to the source policy and the particular implementation Kernel changes would force user-level modifications –Instead, export an abstract ordered list of file pages Order indicates which pages are likely to be evicted Possible to build a single library for many source policies General observations –Information must be recast –Hide actual implementations –Export general abstractions applying to a range of policies
24
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
25
Efficient Abstractions InfoReplace –Victim list, next N victims from file cache page list Faster to copy a small portion of the list –Victim counter, tracks additions to the victim list Faster to determine when manipulation is necessary General observations –Efficient optimizations for each case study –Reusable abstractions for exporting information Lists, counters, notifiers
26
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
27
Simulated cache Emulating Target Policies InfoReplace –Interpose on file reads and writes –Simulate the target policy and compare its shadow file cache entries to the actual cache –Access pages that may be evicted but are favored under the target policy 123321 OS cache compare manipulate
28
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
29
Implementation Complexity InfoReplace –Kernel: 109 lines of code –User-level: 1,361 lines of code Most due to the simulation framework (720 lines) About 100 lines of code for each target policy General observations –Small code sizes for all case studies (< 1,900 lines) –Abstractions easily implemented in Linux and BSD
30
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
31
InfoReplace Accuracy Convert Linux 2Q into FIFO, LRU, MRU, LFU Workload varies recency and frequency of access to a file Compare pages in actual and simulated caches Accuracy is high except for MRU, which is opposed to 2Q
32
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
33
InfoReplace Overhead Convert Linux 2Q into FIFO, LRU, MRU, LFU Overheads are small except LFU which is expensive to simulate Even LFU overhead is acceptable if we can gain just 1% in hit rate
34
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
35
InfoReplace Workload Benefits Convert Linux 2Q policy into PinRange Pin the upper levels of a database index tree in memory Workload of random index lookups Level 6 hit rate increases under PinRange Run time decreases 22%
36
InfoReplace Workload Benefits Convert Linux 2Q policy into PinRange Pin the upper levels of a database index tree in memory Workload of random index lookups Level 6 hit rate increases under PinRange Run time decreases 22%
37
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
38
Adding Mechanisms InfoReplace –Could build several cache policies into the OS Difficult to supply the right policy for every application General observations –Infeasible to deliver all policies for all applications –Provide abstract tools for policy customization
39
Infokernel Questions Exporting information –How much information should we export? –How do we access information efficiently? Controlling policies –How can we emulate other policies? –How complex is the implementation? Evaluation –How accurate is our policy control? –How much overhead is incurred? –What benefits can we achieve? Other issues –Why not add new mechanisms for control? –Could greedy processes misbehave?
40
Greedy Processes InfoReplace –A process could monopolize the file cache –Such activity was possible before General observations –Stresses the role of the OS to arbitrate resources –No new mechanisms, so no new OS responsibilities
41
Case Study: InfoFreeSched Provide free-block scheduling on a source disk scheduling policy Manipulate source policy by carefully introducing background requests Disk Sched (infokernel) Application Information InfoFreeSched
42
InfoFreeSched Abstractions Name of disk scheduling policy –Determine where new requests will be placed Disk request list Notifier for changes to disk request list –Faster to recognize new scheduling opportunities Timers for disk accesses –Build an approximate disk model based on logical block distances
43
InfoFreeSched Operation Lack complete control over disk request queue –Limited by source policy and existing requests
44
InfoFreeSched Operation Lack complete control over disk request queue –Limited by source policy and existing requests Obtain current list of disk requests
45
InfoFreeSched Operation Lack complete control over disk request queue –Limited by source policy and existing requests Obtain current list of disk requests For each background request
46
InfoFreeSched Operation Lack complete control over disk request queue –Limited by source policy and existing requests Obtain current list of disk requests For each background request –Determine its queue position
47
InfoFreeSched Operation Lack complete control over disk request queue –Limited by source policy and existing requests Obtain current list of disk requests For each background request –Determine its queue position –Calculate effect on foreground using disk model
48
InfoFreeSched Operation Lack complete control over disk request queue –Limited by source policy and existing requests Obtain current list of disk requests For each background request –Determine its queue position –Calculate effect on foreground using disk model –Insert request if impact is minimal
49
InfoFreeSched Workload Benefits Workload of foreground and background random read requests Increase overall bandwidth with minimal impact on foreground
50
Conclusions Infokernels –Can efficiently manipulate OS polices –Apply to a diverse set of policies –Can be built from several useful abstractions –Are simple to implement
51
Conclusions Infokernels –Can efficiently manipulate OS polices –Apply to a diverse set of policies –Can be built from several useful abstractions –Are simple to implement Information empowers applications
52
Questions? http://www.cs.wisc.edu/wind/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.