BabelFish: Fusing Address Translations for Containers Dimitrios - - PowerPoint PPT Presentation

babelfish fusing address translations for containers
SMART_READER_LITE
LIVE PREVIEW

BabelFish: Fusing Address Translations for Containers Dimitrios - - PowerPoint PPT Presentation

BabelFish: Fusing Address Translations for Containers Dimitrios Skarlatos, Umur Darbaz, Bhargava Gopireddy, Nam Sung Kim, and Josep Torrellas University of Illinois at Urbana-Champaign skarlat2@illinois.edu ISCA 2020 Conventional Cloud


slide-1
SLIDE 1

BabelFish: Fusing Address Translations for Containers

Dimitrios Skarlatos, Umur Darbaz, Bhargava Gopireddy, Nam Sung Kim, and Josep Torrellas University of Illinois at Urbana-Champaign skarlat2@illinois.edu ISCA 2020

slide-2
SLIDE 2

Conventional Cloud Computing

2

Hardware

Hypervisor

Lib App

Guest OS

Lib App

Guest OS

Virtual Machines

slide-3
SLIDE 3

New Era in Cloud Computing

3

Lib App

Container Engine

Lib App Lib App Hardware

Operating System

Containers

  • 1. Lightweight
  • 2. Faster bringup
  • 3. Higher consolidation

OS automatically shares resources!

slide-4
SLIDE 4

Containers in the Cloud

4

Replicated Containers Scalability Fault Tolerance Load Balancing

Pod

High number of containers Very frequent context switches Serverless & Function-as-a-Service (FaaS)

  • Cold start effects
  • Very short runtime

Shared Data Pages

Library

Container Engine

Hardware

Operating System

Application Binary

slide-5
SLIDE 5

Problem: Replicated VAàPA Translations

5

Replicated Containers Scalability Fault Tolerance Load Balancing

Pod

High number of containers Very frequent context switches Serverless & Function-as-a-Service (FaaS)

  • Cold start effects
  • Very short runtime

Shared Data Pages

Library

Container Engine

Hardware

Operating System

Application Binary

  • 1. TLB thrashing
  • 2. Redundant page table work
slide-6
SLIDE 6

Solution: Share VAàPA Translations

6

Replicated Containers Scalability Fault Tolerance Load Balancing

Pod

High number of containers Very frequent context switches Serverless & Function-as-a-Service (FaaS)

  • Cold start effects
  • Very short runtime

Shared Data Pages

Library

Container Engine

Hardware

Operating System

Application Binary

  • 1. Minimize TLB thrashing
  • 2. Eliminate redundant page table work
slide-7
SLIDE 7

Contribution: BabelFish

HW and OS support to share translations across containers

  • 1. Introduce Container Context IDentifiers (CCID)
  • 2. Extend TLB design
  • 3. Share page tables

Performance improvement

Data-serving: 11%-18% Compute: 11% Function-as-a-Service: 10-55% Container bring-up: 8%

7

“The Babel fish is small, yellow, leech-like, and probably the oddest thing in the Universe. The practical upshot of all this is that if you stick a Babel fish in your ear you can instantly understand anything said to you in any form of language.” The Hitchhiker's Guide to the Galaxy – Douglas Adams

slide-8
SLIDE 8

Problem: TLB Bloat

8

Main Memory Core L3 Cache L1 Cache L2 Cache TLB

Container A

Page Tables A

PA 4 VA 1

PA 4

slide-9
SLIDE 9

Problem: TLB Bloat

9

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

à “Page Walk” = Fetch entry from page table TLB Miss Issue LD VA 1

PA4 VA1

Container A

slide-10
SLIDE 10

Problem: TLB Bloat

10

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Container A

PA4 VA1 PCID

Existing Process Context IDentifiers (PCID)

slide-11
SLIDE 11

Problem: TLB Bloat

11

Main Memory

PA 4

Page Tables B Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Container B

PA4 VA1 PCID

What if we could identify shared entries?

PA4 VA1

Issue LD VA 1 à “Page Walk” = Fetch entry from page table TLB Miss

PCID PA4 VA1

slide-12
SLIDE 12

Problem: TLB Bloat

12

Main Memory

PA 4

Page Tables B Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Container B

PA4 VA1 PA4 VA1

What if we could identify shared entries?

slide-13
SLIDE 13

Solution: BabelFish TLB

13

Main Memory

PA 4

Page Tables B Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Container B

PA4 VA1 PA4 VA1

Unlimited sharing of translations among any number of containers! Container A Container Context Identifier (CCID)

CCID

slide-14
SLIDE 14

Solution: BabelFish TLB

14

Main Memory

PA 4

Page Tables B Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Container B

PA4 VA1 PA4 VA1

Container A Container Context Identifier (CCID) VAàPA shared for some containers & private for others Container C PrivateCopy (PC)

CCID PC

slide-15
SLIDE 15

Solution: BabelFish TLB

15

Main Memory

PA 4

Page Tables B Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Container B

PA4 VA1 PA4 VA1

Container A Container Context Identifier (CCID) PrivateCopy (PC) VAàPA shared for some containers & private for others

PA6 VA1 CCID PC

Container C

CCID PC

slide-16
SLIDE 16

Problem: Page Table Entry Bloat

16

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

PA4 VA1 PCID

Container A

PA 4 VA 1 PA 4 VA 1

PA4 VA1

slide-17
SLIDE 17

Problem: Page Table Entry Bloat

17

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

PA4 VA1 PCID PA4 VA1 PCID

Page Tables B

PA 4 VA 1 PA 4 VA 1 PA 4 VA 1 PA 4 VA 1 PA 4 VA 1

PA4 VA1

Container B

slide-18
SLIDE 18

Problem: Lazy Page Table Management

18

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Page Tables B

PA 4 VA 1 P

Container A

P

Present bit

slide-19
SLIDE 19

Problem: Lazy Page Table Management

PA 4

19

Main Memory Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Page Tables B

PA 4 VA 1 P

Container A

P

Present bit currently cleared

slide-20
SLIDE 20

Problem: Lazy Page Table Management

20

Main Memory Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Page Tables B

PA 4 VA 1 P

Container A

P

Issue LD VA 1

PA4 VA1

P

Page Fault!

Storage PA 4

slide-21
SLIDE 21

Problem: Lazy Page Table Management

21

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Page Tables B

PA 4 VA 1 P

Container A

P

Issue LD VA 1 Page Fault!

Storage Present bit set Present bit remains cleared

P

slide-22
SLIDE 22

Problem: Lazy Page Table Management

22

Main Memory

PA 4

Page Tables A Core L3 Cache L1 Cache L2 Cache TLB

PA 4 VA 1

Page Tables B

PA 4 VA 1 P P

Page Fault!

Container B

Issue LD VA 1

PA4 VA1

P

Present bit set

P P

slide-23
SLIDE 23

Conventional Page Tables

23

pmd_t pte_t PGD PUD PMD PTE CR30

47 … 39 38 … 30 29 … 21 20 … 12 11 … 0 9-bits 9-bits 9-bits 9-bits 12-bits

+ + + Virtual Address To TLB +

Container A

slide-24
SLIDE 24

Conventional Page Tables

24

pmd_t pte_t PGD PUD PMD CR30

47 … 39 38 … 30 29 … 21 20 … 12 11 … 0 9-bits 9-bits 9-bits 9-bits 12-bits

+ + + Virtual Address To TLB + PTE pmd_t PGD PUD PMD CR31 + + + pte_t PTE + To TLB

Container A Container B

slide-25
SLIDE 25

Conventional Page Tables

25

pmd_t pte_t PGD PUD PMD CR30

47 … 39 38 … 30 29 … 21 20 … 12 11 … 0 9-bits 9-bits 9-bits 9-bits 12-bits

+ + + Virtual Address To TLB + PTE pmd_t PGD PUD PMD CR31 + + + pte_t PTE + To TLB

Container A Container B

slide-26
SLIDE 26

Solution: BabelFish Page Table Sharing

26

pmd_t pte_t PGD PUD PMD PTE CR30

47 … 39 38 … 30 29 … 21 20 … 12 11 … 0 9-bits 9-bits 9-bits 9-bits 12-bits

+ + + + Virtual Address To TLB pmd_t PGD PUD PMD CR31 + + +

Container A Container B

slide-27
SLIDE 27

Example

28

Container A: Runs on Core 0, requests VAàPA Container B: Runs on Core 1, requests VAàPA Container C: Runs on Core 0, requests VAàPA

slide-28
SLIDE 28

Example

29

Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

L2 Cache Miss, L3 Cache Miss, Main Memory Hit

Page Walk Cache (PWC)

slide-29
SLIDE 29

Example

30

Issue LD V1 Core 0 L1 TLB Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault L2 TLB Miss PWC Miss

slide-30
SLIDE 30

Example

31

Issue LD V1 Core 0 L1 TLB Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault L2 TLB Miss PWC Miss

slide-31
SLIDE 31

Example

32

Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

BabelFish

Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

slide-32
SLIDE 32

Example

33

Issue LD V1 Core 0 L1 TLB Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

BabelFish

Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk

PUD Walk PMD Walk PTE Walk

L2 Cache Miss, L3 Cache Hit

L2 TLB Miss PWC Miss

slide-33
SLIDE 33

Example

34

Issue LD V1 Core 0 L1 TLB Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

BabelFish

Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk

PUD Walk PMD Walk PTE Walk

L2 Cache Miss, L3 Cache Hit

Issue LD V1 Core 0 L1 TLB Hit L2 TLB Miss PWC Miss

slide-34
SLIDE 34

Example

35

Issue LD V1 Core 0 L1 TLB Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

Time

Conventional

Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault

BabelFish

Issue LD V1 Core 0 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk PUD Walk PMD Walk PTE Walk Page Fault Issue LD V1 Core 1 L1 TLB Miss L2 TLB Miss PWC Miss PGD Walk

PUD Walk PMD Walk PTE Walk

L2 Cache Miss, L3 Cache Hit

Issue LD V1 Core 0 L1 TLB Hit

Result: Faster Execution Time!

L2 TLB Miss PWC Miss

slide-35
SLIDE 35

Workloads & Methodology

Workloads:

Data serving: ArangoDB, MongoDB, HTTPd Compute: GraphChi, FIO FaaS: Parse, Hash, Marshal (both dense and sparse)

Full system simulations with Simics + SST

36

2 containers per core 3 containers per core

slide-36
SLIDE 36

Page Table Sharing for Two Containers

37

5-minute run on a real machine

slide-37
SLIDE 37

Page Table Sharing for Two Containers

38

5-minute run on a real machine

slide-38
SLIDE 38

Page Table Sharing for Two Containers

39

5-minute run on a real machine

slide-39
SLIDE 39

Page Table Sharing for Two Containers

40

Active

5-minute run on a real machine

slide-40
SLIDE 40

Page Table Sharing for Two Containers

41

After Merging Active

5-minute run on a real machine

slide-41
SLIDE 41

Page Table Sharing for Two Containers

42

Page Sharing is Common à Major Reduction in Translations

5-minute run on a real machine

After Merging Active

slide-42
SLIDE 42

Performance

43

Major Performance Gains à Both from TLB and page tables

55%

slide-43
SLIDE 43

More in the Paper

Copy-on-Write pages Address Space Layout Randomization (ASLR) for security Other security considerations More evaluation

Area, energy, sharing, comparison vs larger TLB

44

slide-44
SLIDE 44

Takeaway: BabelFish

Sharing Translations in TLB and Page Tables

Introduces Container Context ID (CCID) at OS and HW

TLB extensions & Page Table sharing support

Substantial speedup in application execution and container bring-up

Future work à CCID in OS and HW

  • Virtualized environments and nested page tables
  • Other resources
slide-45
SLIDE 45

BabelFish: Fusing Address Translations for Containers

Dimitrios Skarlatos, Umur Darbaz, Bhargava Gopireddy, Nam Sung Kim, and Josep Torrellas University of Illinois at Urbana-Champaign skarlat2@illinois.edu ISCA 2020