35
1 Write Barrier Elision for Concurrent Garbage Collectors Martin T. Vechev Cambridge University David F. Bacon IBM T.J.Watson Research Center

Write Barrier Elision for Concurrent Garbage Collectors

  • Upload
    sanam

  • View
    94

  • Download
    0

Embed Size (px)

DESCRIPTION

Write Barrier Elision for Concurrent Garbage Collectors. Martin T. Vechev Cambridge University David F. Bacon IBM T.J.Watson Research Center. Write Barriers for Concurrent GC. Mutator and Collector interleaved Mutator changes object graph Potential race conditions - PowerPoint PPT Presentation

Citation preview

Page 1: Write Barrier Elision for  Concurrent Garbage Collectors

1

Write Barrier Elision for Concurrent Garbage Collectors

Martin T. Vechev

Cambridge University

David F. Bacon

IBM T.J.Watson Research Center

Page 2: Write Barrier Elision for  Concurrent Garbage Collectors

2

Write Barriers for Concurrent GC

• Mutator and Collector interleaved

• Mutator changes object graph

• Potential race conditions

• Write barriers a form of synchronization– Between mutators and the collector.

Page 3: Write Barrier Elision for  Concurrent Garbage Collectors

3

Can Synchronization Be Reduced?

• Minimum information from a mutator to a collector?– without compromising correctness?

• Can static analysis help?• Can we discover dynamic opportunities?

ConcurrentCollector

?

MutatorsHeap

Connectivity Graph

write

read

read

write barrier

Page 4: Write Barrier Elision for  Concurrent Garbage Collectors

4

Outline

• The Synchronization Problem

• Elimination conditions

• Elimination opportunities (limit study)

• Elimination correlation

• Exploiting Order

• Conclusions and Future Work

Page 5: Write Barrier Elision for  Concurrent Garbage Collectors

5

A

CB

P1

The Synchronization Problem

Time

Collector Working

- Marks B as live

Page 6: Write Barrier Elision for  Concurrent Garbage Collectors

6

A

CB

P1

The Synchronization Problem

A

CB

P1

P2

Time

Collector Working Thread Working

- Installs P2- Marks B as live

Page 7: Write Barrier Elision for  Concurrent Garbage Collectors

7

A

CB

P1

The Synchronization Problem

A

CB

P1

P2

A

CB P2

Time

Collector Working Thread Working Thread Working

- Installs P2 - Deletes P1- Marks B as live

Page 8: Write Barrier Elision for  Concurrent Garbage Collectors

8

A

CB

P1?

The Synchronization Problem

A

CB

P1

P2

A

CB P2

A

B P2

Time

Collector Working Thread Working Thread Working Collector Working

- Installs P2 - Deletes P1- Marks B as live - C was not seen- Reclaims C: live!

Page 9: Write Barrier Elision for  Concurrent Garbage Collectors

9

Time

MemoryLocation

A

B

P1

P2

1 2 3 4 5 60

A and B contain pointers to Object C

Point of Error

The Synchronization Problem

Page 10: Write Barrier Elision for  Concurrent Garbage Collectors

10

Types of Write Barriers

A

CB

P1A

CB

P1

P2

A

B P2

A

B P2

TIME

Collector Working Thread Working Thread Working Collector Working

C C

Steele

Marks B (Source) for rescanning

Dijkstra

Mark C (new target) as live

Yuasa

Mark C (old target) as live

Page 11: Write Barrier Elision for  Concurrent Garbage Collectors

11

Costs of Concurrent Write Barriers

• Mutator Overhead– Direct Run-time Overhead (5-20%)– I-cache pollution by write barrier code

• Collector Overhead– Process Write Barrier Information

• Space costs– Sequential Store Buffer– Increased Code Size

• Termination Issues– Yuasa vs. Dijkstra/Steele

Page 12: Write Barrier Elision for  Concurrent Garbage Collectors

12

Contributions

• Four Elimination Conditions a static analysis can utilize.– Main idea based on pointer lifetimes.

1. Two Covering conditions: Apply to all barriers

2. Two Allocation conditions: Apply to incremental barriers.

• Limit study shows potential for barrier elimination– For Yuasa, on average 83% can be eliminated – For Dijkstra and Steele, on average 54% can be eliminated

• Correlation study between barrier elimination and– Object Size– Object Lifetime– Program Locality

Page 13: Write Barrier Elision for  Concurrent Garbage Collectors

13

Single Covering Condition

Time

MemoryLocation

1 2 3

A

B

P1

P2

Key Observation:

• P1’s lifetime covers P2’s • Barriers on P2 are redundant

A

CB

P1

A

CB

P1

P2

A

CB

A

B

TIME

Collector Working Thread Working Thread Working Collector Working

P1

CP1

Page 14: Write Barrier Elision for  Concurrent Garbage Collectors

14

Single Covering Condition (Incremental)

Time

MemoryLocation

1 2 3

A

B

L

H

RescanRoots

4

Time

MemoryLocation

1 2 3

A

B

H

H

4

Page 15: Write Barrier Elision for  Concurrent Garbage Collectors

15

Single Covering Condition (Snapshot)

Time

MemoryLocation

1 2 3

A

B

L

H

4

Time

MemoryLocation

1 2 3

A

B

H

H

4

Page 16: Write Barrier Elision for  Concurrent Garbage Collectors

16

Time

MemoryLocation

A

B

P1

P3

1 2 3 40

Multiple Covering Condition

P2

5 6 7

C

V

Key Observation :

• P1 together with a barrier on P2 form a virtual pointer PV• Apply Single Covering to eliminate barriers on P3

Page 17: Write Barrier Elision for  Concurrent Garbage Collectors

17

Multiple Covering Condition (Incremental)

Time

MemoryLocation

1 2 3

A

B

L

H

4

L

C

Time

MemoryLocation

1 2 3

A

B

L

H

4

H

C

Page 18: Write Barrier Elision for  Concurrent Garbage Collectors

18

Multiple Covering Condition (Incremental)

Time

MemoryLocation

1 2 3

A

B

H

H

4

L

C

Time

MemoryLocation

1 2 3

A

B

H

H

4

H

C

Page 19: Write Barrier Elision for  Concurrent Garbage Collectors

19

Multiple Covering Condition (Snapshot)

Time

MemoryLocation

1 2 3

A

B

L

H

4

L

C

Time

MemoryLocation

1 2 3

A

B

L

H

4

H

C

Page 20: Write Barrier Elision for  Concurrent Garbage Collectors

20

Multiple Covering Condition (Snapshot)

Time

MemoryLocation

1 2 3

A

B

H

H

4

L

C

Time

MemoryLocation

1 2 3

A

B

H

H

4

H

C

Page 21: Write Barrier Elision for  Concurrent Garbage Collectors

21

Single Allocation Condition

• Allocation conditions exploit Initial Root Set Marking

• Main idea: At the time of a barrier, the object is already marked

• Only if allocating non-white (also trade off), for Dijkstra/Steele only

Time

Memory Location

1 2 3

A

B

N

P2

Key Observation :

H starts Inside ‘New’ pointer N

Page 22: Write Barrier Elision for  Concurrent Garbage Collectors

22

Multiple Allocation Condition

Key Observation :

• V = N join L• Apply SAC between V and H

Time

Memory Location

1 2 3

A

B

C

N

L

H

V

Page 23: Write Barrier Elision for  Concurrent Garbage Collectors

23

Eliminating Null Pointer Stores

• If old pointer is NULL, eliminate barrier• Yuasa vs Steele/Dijskstra• Yuasa good because of initialization

• Null stores are easier to eliminate – But less payoff

Yuasa(destination, old_pointer) if ( Collector_Marking && old_pointer != NULL) store (old_pointer);

Dijkstra(destination, new_pointer) if (Collector_Marking && new_pointer != NULL) store (new_pointer);

Page 24: Write Barrier Elision for  Concurrent Garbage Collectors

24

Evaluation Methodology

• Limit study based on elimination condition

• Shows potential for elimination

• Traces– Jikes RVM 2.2.0– Trace Events : Allocation, Pointer Stores– Application Objects Only

• Which benchmarks: – SpecJVM98 (-s100)– Jolden– Ipsixql– Xalan– Deltablue

Page 25: Write Barrier Elision for  Concurrent Garbage Collectors

25

Barrier Elimination Potential – Dijkstra / Steele

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%SCC SAC Null Remaining

Page 26: Write Barrier Elision for  Concurrent Garbage Collectors

26

Barrier Elimination Potential - Yuasa

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%SCC Null Remaining

Page 27: Write Barrier Elision for  Concurrent Garbage Collectors

27

Time (MB) vs. Eliminated Yuasa Barriers

• Elimination is Periodic => WB elimination occurs in bursts

0

2000

4000

6000

8000

10000

12000

14000

1476 3483 5488 7490 9493 11493 13498 15498

Time (MB allocated)

Eli

min

ate

d B

arr

iers

JAVAC

Page 28: Write Barrier Elision for  Concurrent Garbage Collectors

28

Time (MB) vs. Eliminated Yuasa Barriers

• Elimination is Periodic => WB elimination occurs in bursts

db

0

100000

200000

300000

400000

500000

6086 7268 8447 9755 11048 12371 13669 15030

Time (MB allocated)

Eli

min

ated

Bar

rier

s

DB

Page 29: Write Barrier Elision for  Concurrent Garbage Collectors

29

Object Size (words) vs. Eliminated Yuasa Barriers

• Elimination is on Small objects

0

300000

600000

900000

1200000

1500000

1800000

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Object Size (words)

Elim

inat

ed B

arri

ers

JAVAC

Page 30: Write Barrier Elision for  Concurrent Garbage Collectors

30

Object Age vs. Eliminated Yuasa Barriers

• Elimination is mostly on Young objects (Log Y scale)

1

10

100

1000

10000

100000

1000000

0 10 20 30 40 50 60 70 80 90

Object Age (in MB)

Elim

inat

ed B

arri

ers

JAVAC

Page 31: Write Barrier Elision for  Concurrent Garbage Collectors

31

Object Age vs. Eliminated Yuasa Barriers

• An Exception

1

10

100

1000

10000

100000

0 2258 6687 8656 8856 9065 9265 9485 9689 9889

DB

Page 32: Write Barrier Elision for  Concurrent Garbage Collectors

32

Further Write Barrier Elimination

• So far assumed collector sees pointers in any order

• Often, Collector order exists– take advantage of it

• Main idea: writes on the collector wave are safe.

– Cannot apply previous conditions– Can eliminate more barriers

• Order extends to Lists, Queues, Trees (Needs connectivity approximation)

Page 33: Write Barrier Elision for  Concurrent Garbage Collectors

33

Single Object Scenarios (Order matters)

CP1

?

Time

Collector Working Thread Working Thread Working Collector Working

-Installs P2 - Deletes P1-B is partially scanned (gray)

- Reclaims live object C incorrectly

CP1

P2

CP2 P2

Broken Sequence

B B B B

Page 34: Write Barrier Elision for  Concurrent Garbage Collectors

34

Single Object Scenarios (Order matters)

CP1

CP1

P2

CP2

C

Correct Sequence

Collector Working

Thread Working Thread Working Collector Working

- Installs P2 - Deletes P1- B is partiallyscanned (gray)

- C is NOT collected

B B B BP2

Page 35: Write Barrier Elision for  Concurrent Garbage Collectors

35

Conclusions and Future Work

• Static Analysis Elimination Conditions

• An Upper Bound

• Hot Barrier Methods

• Yuasa Barriers seem superior to Dijkstra/Steele – (study higher elimination vs. reduced floating garbage)– Yuasa are harder to statically eliminate

• More conditions possible– Requires formal reasoning

• Other elimination combinations possible:– Coverage (ownership) and Order can be exploited further.