Transforming Policies into Mechanisms with Infokernel

52
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

description

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. - PowerPoint PPT Presentation

Transcript of Transforming Policies into Mechanisms with Infokernel

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 SciencesUniversity of Wisconsin - Madison

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

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?

From Policies to Mechanisms

• Information empowers transformation

OS - Policies

Application

From Policies to Mechanisms

• Information empowers transformation

OS - Policies(infokernel)

Application

small changes

From Policies to Mechanisms

• Information empowers transformation

OS - Policies(infokernel)

Application

Information

small changes

algorithms, state

From Policies to Mechanisms

• Information empowers transformation

OS - Policies(infokernel)

Application

Information

small changes

algorithms, state

Library

From Policies to Mechanisms

• Information empowers transformation

OS - Policies(infokernel)

Application

Information

small changes

algorithms, state

Library

exploitpredict

From Policies to Mechanisms

• Information empowers transformation

OS - Policies(infokernel)

Application

Information

small changes

algorithms, state

Library

exploitpredict

adapt

From Policies to Mechanisms

• Information empowers transformation

OS - Policies(infokernel)

Application

Information

small changes

algorithms, state

Library

exploitpredict

adapt

manipulate

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

Infokernel Observations

• Policies can be manipulated efficiently

• Ideas applicable to diverse policies

• Several useful abstractions

• Simple to implement

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?

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

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate…

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate

1

LIFO

2 1

3 2 1

4 2 1

50% Hit Rate…

4 2 1

4 2 1

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU (source)

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate

LIFO (target)

50% Hit Rate…

1

InfoReplace

1 2

1 2 3

1

2 1

3 2 1

4 2 1

4 2 1

4 2 1

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU (source)

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate

LIFO (target)

50% Hit Rate…

1

InfoReplace

1 2

2 3 1

1

2 1

3 2 1

4 2 1

4 2 1

4 2 1

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU (source)

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate

LIFO (target)

50% Hit Rate…

1

InfoReplace

1 2

3 1 2

1

2 1

3 2 1

4 2 1

4 2 1

4 2 1

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU (source)

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate

LIFO (target)

50% Hit Rate…

1

InfoReplace

1 2

1 2 4

3 1 2

1

2 1

3 2 1

4 2 1

4 2 1

4 2 1

Repeated Sequential Scans

• Imagine a 3 page cache and a 4 page file

1Read page 1

LRU (source)

1Read page 2 2

1Read page 3 2 3

2Read page 4 3 4

3Read page 1 4 1

4Read page 2 1 2

0% Hit Rate

LIFO (target)

50% Hit Rate…

1

InfoReplace

1 2

1 2 4

2 4 1

4 1 2

3 1 2

50% Hit Rate

1

2 1

3 2 1

4 2 1

4 2 1

4 2 1

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?

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

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?

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

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?

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

1 2 3 3 2 1

OS cachecompare

manipulate

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?

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

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?

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

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

FIFO LRU MRU LFU

Target Algorithm

Percent of Correct Pages

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?

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 0

20

40

60

80

100

120

FIFO LRU MRU LFU

Target Algorithm

Time Per Read (us)

100.16

0.97 0.873.60

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?

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%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

L1-L5 L6 L7

Index Level

Hit Rate

2Q PinRange

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% 0

200

400

600

800

1000

1200

1

Run Time (s)

2Q PinRange

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?

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

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?

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

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

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

InfoFreeSched Operation

• Lack complete control over disk request queue– Limited by source policy and existing requests

InfoFreeSched Operation

• Lack complete control over disk request queue– Limited by source policy and existing requests

• Obtain current list of disk requests

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

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

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

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

InfoFreeSched Workload Benefits

• Workload of foreground and background random read requests

• Increase overall bandwidth with minimal impact on foreground

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

FG Only FG +BG FG +BG+FreeSched

Bandwidth (MB/s)

Foreground Background

13%

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

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

Questions?

http://www.cs.wisc.edu/wind/