60
- 1 - Dongyoon Lee Computer Science Department Deterministic Replay and Data Race Detection for Multithreaded Programs

Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 1 -

Dongyoon Lee Computer Science Department

Deterministic Replay and Data Race Detection

for Multithreaded Programs

Page 2: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 2 -

The Shift to Multicore Systems

100+ cores Desktop/Server

2+ cores Smart Things

8+ cores Smartphones

Page 3: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 3 -

Data Races in Multithreaded Programs

• Two threads access the same shared location (one is write)

• Not ordered by synchronizations

if (p) {

fput(p, …)

}

p = NULL

Thread 1 Thread 2

crash

MySQL bug #3596

Page 4: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 4 -

Race Conditions Caused Severe Problems

Northeast Blackout Therac-25

NASDAQ Stock Price Mismatch Security Vulnerability

Page 5: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 5 -

Multithreaded programming is HARD

Goal: to help programmers develop more reliable and secure multithreaded programs

Solutions:

• Deterministic replay

• Data race detector

• Systematic testing

• Program analysis

• …

→ DoublePlay

→ TxRace

Page 6: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 6 -

DVR: Never Miss a Show

DVR - Control recorded TV

Record

Play

Pause

Rewind

Fast- Forward

Stop

Page 7: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 7 -

Deterministic Replay

• Record an execution

• Reproduce the same execution

Deterministic Replay

Traditional Debugging

Replay-based Debugging

p = NULL

watchpoint

Is p == NULL?

< DVR >

←Step backward

Time-travel Debugging

Page 8: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 8 -

Deterministic Replay

Deterministic Replay

Collecting Execution Traces

System Trace

Less file size

Less distortion

Huge

Distorted

RECORD REPLAY

• Record an execution

• Reproduce the same execution ≈

< DVR >

App1 App2

Architecture simulation

Page 9: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 9 -

Deterministic Replay

• Record an execution

• Reproduce the same execution

Deterministic Replay

OFFLINE Program Analysis

< DVR >

Audit

Program

Forensics Problem Diagnosis

Less overhead

Less distortion

RECORD REPLAY Heavyweight

Forensics, Auditing, …

Page 10: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 10 -

Deterministic Replay

Deterministic Replay

• Record an execution

• Reproduce the same execution ≈

< DVR >

Offloaded Security Checks

ONLINE Program Analysis

Smartphone

RECORD REPLAY

Resource Constraints

Server-side Replica

Security Checks

Online Replay

Page 11: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 11 -

Deterministic Replay

• Record an execution

• Reproduce the same execution

Deterministic Replay

≈ < DVR >

Fault Tolerance

Always-on bank service

client

server replica

RECORD REPLAY

Online Replay

Page 12: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 12 -

Deterministic Replay

• Record an execution

• Reproduce the same execution

Deterministic Replay

≈ < DVR >

Fault Tolerance

Offloaded Security Checks

Multiprocessors

Uniprocessors

2004

- At low overhead (~5%) - Commercial products

Time-travel Debugging

Architecture simulation

Forensics, Auditing, …

Page 13: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 13 -

Past Approach for Multiprocessor Replay

Write

Write Read

Log shared-memory dependencies

Checkpoint Initial State

Log data from the external world (program input)

Thread 1 Thread 2 Thread 3

10-100x

Page 14: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 14 -

Contribution to Deterministic Replay

Log dependencies imprecisely,

but still provide useful replay guarantee

Page 15: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 15 -

Replay Guarantee

Value Determinism

- Same sequence of instructions,

reading/writing same value

Schedule Determinism

- Same thread interleaving

External Determinism

- Same output and final state

Debugging Fault tolerance

client server

replica

Offloaded analysis

replica

Security Checks

smartphone

Past solutions log precise shared-memory dependencies

Page 16: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 16 -

Overview of DoublePlay

Checkpoint Initial State

Log data from the external world

Thread 1 Thread 2 Thread 3

Write X Write X

Read X

Log shared-memory dependencies (Value + Schedule Determinism) Log the subset of shared-memory dependencies

enough for External Determinism

Page 17: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 17 -

Recording for Data-Race-Free Programs

Checkpoint Initial State

Log data from the external world

Thread 1 Thread 2 Thread 3

Lock

Unlock

X = 1 …

Lock

Unlock

X = 0 …

X = 2 …

Data Race - Different threads - Shared location - Unsynchronized - Write operation

Data-Race-Free - Log the order of synchronization operations

Page 18: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 18 -

Online Replay with Speculation

• Record and replay program input

• Record and replay the order of synchronizations

- Speculate data-race-free programs

Checkpoint A

T1 T2

Lock

Unlock Lock

Recorded Process

multi-threaded fork T1 T2

Lock

Unlock Lock

Replayed Process

Checkpoint A’

Speculate Race free

Record input Replay input

Page 19: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 19 -

What if a program is NOT race free?

Problem − Mis-speculation

− Data race detector?

Insight: External Determinism is sufficient − Guarantee the same output and final state

Solution − Detect mis-speculation when the replay is not externally deterministic

Checkpoint A

T1 T2

Recorded Process

X=1

X=2

Checkpoint A

T1 T2

Replayed Process

X=1

X=2

Page 20: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 20 -

• Compare system call arguments

• Guarantee external determinism

Check #1 – System Output

Lock(l) Unlock(l)

Lock(l)

Lock(l) Unlock(l)

Lock(l)

T1 T2

Start A

Recorded Process

T1 T2

Start A’

Replayed Process

Check O’==O?

SysRead X

SysWrite O

SysRead X

SysWrite O’

multi-threaded fork

Speculate

Race free

Page 21: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 21 -

Inconsequential Data Races

• Not all races cause external determinism checks to fail

x=1 x!=0?

x=1

x!=0? x!=0?

x!=0?

T1 T2 Start A

Recorded Process Replayed Process

Success

SysWrite(x) SysWrite(x)

multi-threaded fork T1 T2

Start A’

Page 22: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 22 -

1) Need to rollback to the beginning

2) Need to buffer system output till the end

Divergence due to Data Races

Start A

Recorded Process Replayed Process

Start A’ multi-threaded

fork

T1 T2 T1 T2

Fail SysWrite(x)

x=1

x=2 x=1

x=2

SysWrite(x)

Page 23: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 23 -

• Create a checkpoint periodically

• Compare memory and register states

Check #2 – Program State

Replayed Process

T1 T2

Start A’

T1 T2

Recorded Process

Start A

epo

ch

Release Output Success

epo

ch

SysWrite(x)

x=1 x=2

x=1 x=2

SysWrite(x) Fail

Checkpoint B B’ == B ?

Page 24: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 24 -

• Optimistically re-run the failed epoch

• On repeated failure, record and replay only one thread at a time

Recovery via Rollback and Re-execute

Replayed Process

T1’ T2’

Start A’

T1 T2

Recorded Process

Start A

epo

ch

Success

epo

ch

x=2

SysWrite(x) x=2

SysWrite(x)

x=1 x=2

SysWrite(x)

x=1

Checkpoint C x=1

Check C’==C?

Checkpoint B B’ == B ?

x=1 x=2

SysWrite(x)

Page 25: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 25 -

Online Replay vs. Offline Replay

• The system described so far supports online replay

- The original run should be alive

- This is sufficient for

• Not for debugging which requires offline replay

Debugging

Fault tolerance

client server

replica

Offloaded analysis

replica

Security Checks

smartphone

Page 26: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 26 -

Recording Thread Schedule for Offline Replay

CPU 0 CPU 1 CPU 2 CPU 3 CPU 6 CPU 4 CPU 7 CPU 5

ckpt

input sync.

CPU 0

REPLAY RECORD

State matches?

thread schedule

Original execution Shadow online replay

Logging thread schedule is sufficient for deterministic replay

Need to wait until the online replay finishes (4x slow)

Multi-processor exec. Uni-processor exec.

Page 27: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 27 -

DoublePlay: Uniparallel Execution

Thread-parallel execution

Ep 2

Ep 3

Ep 4

Epoch-parallel execution

CPU 0 CPU 1 CPU 2 CPU 3 CPU 6 CPU 4 CPU 7 CPU 5

Ep 1

• Provide the benefits (guarantees) of uniprocessor executions

• Provide the performance of multiprocessor executions

Ep 4

Ep 1

Ep 3

Ep 2

1

2

3

4

CPU 0

Ep 1

Ep 2

Uni- proc.

State matches?

State matches?

Page 28: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 28 -

Implementation and Evaluation

Implementation • Modified Linux kernel and glibc library

Test Environment • 2 GHz 8 core Xeon processor with 3 GB of RAM

• Run 1~4 worker threads (excluding control threads)

Benchmarks • PARSEC suite

– blackscholes, bodytrack, fluidanimate, swaptions, streamcluster

• SPLASH-2 suite – ocean, raytrace, volrend, water-nsq, fft, and radix

• Desktop/Server applications – pbzip2, pfscan, aget, and Apache

Page 29: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 29 -

Record and Replay Performance

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

blackscholes

bodytrack

fluidanimate

swaptions

streamcluster

oceanraytrace volrend waternsq

fft radix pfscan pbzip2 aget Apache

Rela

tive O

verh

ead

• 18% for 2 threads, 55% for 4 threads

Frequent Synchronizations

Memory comparison

Rare rollback

Page 30: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 30 -

Roadmap

• Motivation

• DoublePlay: Deterministic Replay

• TxRace: Data Race Detector

• Conclusion

Page 31: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 31 -

State-Of-The-Art Dynamic Data Race Detector

Software based solutions

• FastTrack [PLDI’09]

• Intel Inspector XE

• Google Thread Sanitizer

• ...

Hardware based solutions

• ReEnact [ISCA’03]

• CORD [HPCA’06]

• SigRace [ISCA’09]

• …

Sound (no false negatives)

Complete (no false positives)

High overhead (10-100x)

Low overhead

Custom hardware

Page 32: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 32 -

Overview of TxRace

• Hybrid SW + (existing) HW solution

• Leverage the data conflict detection mechanism of Hardware Transactional Memory (HTM) in commodity processors for lightweight data race detection

Low overhead

No custom hardware

Page 33: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 33 -

Background: Transactional Memory (TM)

• Allow a group of instructions (a transaction) to execute in an atomic manner

Thread1 Thread2

Read(X)

Write(X) Abort

Read(X)

Transaction begin

Transaction end

Data conflict

Rollback

tim

e

Page 34: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 34 -

Challenge 1: Unable to Pinpoint Racy Instructions

• When a transaction gets aborted, we know that there was a data conflict between transactions

• However, we DO NOT know WHY and WHERE

- e.g. which instruction? at which address? Which transaction caused the conflict?

Thread1 Thread2

Read(X)

Write(X) Abort

?

Page 35: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 35 -

Challenge 2: False Conflicts → False Positives

Read(X)

Write(Y) Abort

Thread1 Thread2

X Y Cache line

• HTM detects data conflicts at the cache-line granularity

→ False positives

False transaction abort without data race

Page 36: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 36 -

Challenge 3. Non-conflict Aborts

• Best-effort (non-ideal) HTM with limitations

→ Transactions may get aborted without data conflicts

→ False negatives (if ignored)

Read(X) Write(Y) Read(Z)

.

.

. X

Y

Z

Abort

Hardware Buffer

“Capacity” Abort

Read(X) Write(Y)

I/O syscall()

Abort

“Unknown” Abort

Page 37: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 37 -

Potential data races

TxRace: Two-phase Data Race Detection

Fast-path (HTM-based)

Slow-path (SW-based)

Fast

Unable to pinpoint races

False sharing(false positive)

Non-conflict aborts(false negative)

Sound(no false negative)

Complete(no false positive)

Slow

Intel Haswell (RTM)

Google ThreadSanitizer (TSan)

✔ ✔ ✔

✗ ✗ ✗ ✗

Page 38: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 38 -

Compile-time Instrumentation

• Fast-path: convert sync-free regions into transactions

• Slow-path: add Google TSan checks

Lock()

Unlock()

Thread1

Sync-free

Sync-free

Lock()

Thread2

Unlock()

Transaction begin

Transaction end X=1 X=2

Page 39: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 39 -

Fast-path HTM-based Detection

• Leverage HW-based data conflict detection in HTM

• Problem: On conflict, one transaction gets aborted, but all others just proceed → slow-path missed racy transactions

Thread1 Thread2 Thread3

X=1

X=2 Abort

Already passed

Fast-path Slow-path

Page 40: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 40 -

Fast-path HTM-based Detection

• Leverage HW-based data conflict detection in HTM

• Problem: On conflict, one transaction gets aborted, but all others just proceed → slow-path missed racy transactions

• Solution: Abort in-flight transactions artificially

Thread1 Thread2 Thread3

X=1

X=2

R(TxFail) R(TxFail) R(TxFail)

W(TxFail) Abort Abort

Rollback all

Abort

Fast-path Slow-path

Page 41: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 41 -

Slow-path SW-based Detection

• Use SW-based sound and complete data race detection

- Pinpoint racy instructions

- Filter out false positives (due to false sharing)

- Handle non-conflict (e.g., capacity) aborts conservatively

Thread1 Thread2 Thread3

X=1

X=2

Abort Abort

SW-based

detection

Abort

Fast-path Slow-path

Page 42: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 42 -

Implementation

Two-phase data race detection

• Fast-path: Intel’s Haswell Processor

• Slow-path: Google’s Thread Sanitizer

Instrumentation

• LLVM compiler framework

• Compile-time & profile-guided optimizations

Evaluation

• PARSEC benchmark suites with simlarge input

• Apache web server with 300K requests from 20 clients

• 4 worker threads (4 hardware transactions)

Page 43: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 43 -

Performance Overhead

1195x 63x

0

5

10

15

20

25

30

Ru

nti

me O

verh

ead

TSan TxRace

11.68x

4.65x

>10x reduction

Page 44: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 44 -

Soundness (Detection Capability)

112 64 79 64

0

2

4

6

8

10

Nu

mb

er

of

Rac

e d

ete

cte

d

TSan TxRace

False Negative

Recall:0.95

Page 45: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 45 -

False Negatives

• Due to non-overlapped transactions

X=1

X=2

Transaction begin

Transaction end tim

e

Page 46: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 46 -

False Negatives Case Study in vips

0

20

40

60

80

100

120

1 2 3 4 5 6 7

# o

f dete

cte

d d

ata

races

# of iterations

• Repeat the experiment to exploit different interleaving

All detected

Page 47: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 49 -

• Goal: to help programmers to develop reliable and secure concurrent systems

• DoublePlay: Deterministic multiprocessor replay with external determinism and uni-parallelism

• TxRace: Data race detection using hardware transactional memory in commodity processors

• On-going research: Concurrency analysis for event-driven programs (e.g., mobile, Node.js, IoT, etc.)

Conclusion

Page 48: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 50 -

Page 49: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 51 -

Page 50: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 52 -

Roadmap

• Motivation

• DoublePlay: Deterministic Replay

• TxRace: Data Race Detector

• On-going work

• Conclusion

Page 51: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 53 -

Support for Next-Generation Concurrent Systems

100+ cores Desktop/Server

2+ cores Smart Things

8+ cores Smartphones

Event-Driven Programs

Page 52: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 54 -

Why Event-Driven Programming Model?

Need to process asynchronous input from a rich set of sources

Slides extracted from “Hsiao et al’s PLDI 2014 presentation

Page 53: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 55 -

Events and Threads in Android

Event Queue

wait(m)

rd(x)

wr(x)

signal(m)

Looper Thread Threads Regular Threads

onClick() { ...}

send( )

onServiceConnected() { ...}

Slides extracted from “Hsiao et al’s PLDI 2014 presentation

Page 54: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 56 -

Non-determinism: Multi-thread Data Race

Looper Thread Regular Threads

onClick() { ...}

onServiceConnected() { ...}

rd(x)

wr(x)

signal(m)

wait(m)

send( )

Conflict: Read-Write or Write-Write data accesses to same location

Causal order: happens-before ( ) defined by synchronization operations

Race ( ): Conflicts that are not causally ordered

Slides extracted from “Hsiao et al’s PLDI 2014 presentation

Page 55: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 57 -

Looper Thread Regular Threads

onReceive() {

*p;}

onDestroy() {

p = null;}

onClick() {

send( );}

NullPointerException!

Non-determinism: Single-thread Data Race

Slides extracted from “Hsiao et al’s PLDI 2014 presentation

Page 56: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 58 -

Page 57: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 59 -

1) Redundant Execution Overhead (25%)

• Cost of running two executions (lower bound of online replay)

• Mainly due to sharing limited resources: memory system

• Contribute 25% of total cost for 4 threads

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

blackscholes

bodytrack

fluidanimate

swaptions

streamcluster

oceanraytrace volrend waternsq

fft radix pfscan pbzip2 aget Apache

Rela

tive O

verh

ead

Redundant execution overhead (25%)

Page 58: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 60 -

2) Epoch overhead (17%)

• Due to checkpoint cost

• Due to artificial epoch barrier cost

• Contribute 17% of total cost for 4 threads

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

blackscholes

bodytrack

fluidanimate

swaptions

streamcluster

oceanraytrace volrend waternsq

fft radix pfscan pbzip2 aget Apache

Rela

tive O

verh

ead

Epoch overhead (17%)

Redundant execution overhead (25%)

Page 59: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 61 -

3) Memory Comparison Overhead (16%)

• Optimization 1. compare dirty pages only

• Optimization 2. parallelize comparison

• Contribute 16% of total cost for 4 threads

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

blackscholes

bodytrack

fluidanimate

swaptions

streamcluster

oceanraytrace volrend waternsq

fft radix pfscan pbzip2 aget Apache

Rela

tive O

verh

ead

Memory comparison overhead (16%)

Epoch overhead (17%)

Redundant execution overhead (25%)

Page 60: Deterministic Replay and Data Race Detection for Multithreaded …rosaec.snu.ac.kr/meet/file/20160614_36.pdf · 2018-04-12 · Multithreaded programming is HARD Goal: to help programmers

- 62 -

4) Logging Overhead (42%)

• Logging synchronization operations and system calls overhead

• Main cost for applications with fine-grained synchronizations

• Contribute 42% of total cost for 4 threads

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

blackscholes

bodytrack

fluidanimate

swaptions

streamcluster

oceanraytrace volrend waternsq

fft radix pfscan pbzip2 aget Apache

Rela

tive O

verh

ead

Logging and other overhead (42%)

Memory comparison overhead (16%)

Epoch overhead (17%)

Redundant execution overhead (25%)