RaceMob: Crowdsourced Data Race Detec,on Baris Kasikci, - - PowerPoint PPT Presentation

racemob crowdsourced data race detec on
SMART_READER_LITE
LIVE PREVIEW

RaceMob: Crowdsourced Data Race Detec,on Baris Kasikci, - - PowerPoint PPT Presentation

RaceMob: Crowdsourced Data Race Detec,on Baris Kasikci, Cris,an Zamfir, and George Candea School of Computer & Communica3on Sciences Tuesday 12 November 13 Data Races


slide-1
SLIDE 1

Baris ¡Kasikci, ¡Cris,an ¡Zamfir, ¡and ¡George ¡Candea

School ¡of ¡Computer ¡& ¡Communica3on ¡Sciences

RaceMob: ¡Crowdsourced ¡ Data ¡Race ¡Detec,on

Tuesday 12 November 13

slide-2
SLIDE 2
  • Accesses ¡to ¡shared ¡memory ¡loca,on
  • By ¡mul3ple ¡threads
  • At ¡least ¡one ¡of ¡the ¡accesses ¡is ¡a ¡write
  • Synchroniza3on ¡opera3ons ¡do ¡not ¡enforce ¡an ¡
  • rder ¡among ¡the ¡accesses

Thread ¡1 Thread ¡2

2

Data ¡Races

x = 1 x = 2 shared x

Tuesday 12 November 13

slide-3
SLIDE 3

Spectrum ¡of ¡Data ¡Races

3

Kept ¡for ¡ performance Caused ¡massive ¡ losses 2003 ¡Blackout ???

Tuesday 12 November 13

slide-4
SLIDE 4

PiLalls

  • Programs ¡with ¡data ¡races ¡are ¡incorrect ¡

according ¡to ¡POSIX ¡& ¡C/C++ ¡standards

  • Compilers ¡can ¡break ¡correctness ¡of ¡

programs ¡with ¡data ¡races ¡[HotPar’11]

  • Harmless ¡data ¡races ¡can ¡become ¡harmful

4

Developers ¡need ¡to ¡know ¡every ¡true ¡data ¡race

Tuesday 12 November 13

slide-5
SLIDE 5
  • Dynamic ¡race ¡detectors ¡
  • Per-­‑run ¡analysis
  • Expensive ¡(≤ ¡200x)
  • Many ¡false ¡nega5ves
  • Few ¡false ¡posi5ves ¡(~0%)

How ¡to ¡Find ¡All ¡Data ¡Races? ¡

  • Sta,c ¡race ¡detectors
  • Full ¡path ¡analysis
  • Cheap ¡(0 ¡run3me ¡overhead)
  • Few ¡false ¡nega5ves
  • Many ¡false ¡posi5ves ¡(~80%)

5

Exis,ng ¡detectors ¡are ¡not ¡prac,cal ✔ ✔

×

×

× ×

Tuesday 12 November 13

slide-6
SLIDE 6
  • Few ¡false ¡posi5ves ¡(~0%)✔

How ¡to ¡Find ¡All ¡Data ¡Races? ¡

  • Full ¡path ¡analysis
  • Cheap ¡(0 ¡run3me ¡overhead)
  • Few ¡false ¡nega5ves

6

✔ ✔ ✔

Tuesday 12 November 13

slide-7
SLIDE 7
  • Full ¡path ¡analysis
  • Cheap ¡(0 ¡run3me ¡overhead)
  • Few ¡false ¡nega2ves
  • Few ¡false ¡posi2ves ¡(~0%)

✔ ✔ ✔ ✔

RaceMob

7

Sta,c ¡ Detec,on

X X X

Crowdsourcing

Race ¡& Hang Race ¡& Crash

All Memory Accesses

Poten5ally Racing Accesses

Likely Racing Accesses

Dynamic ¡ Context ¡ Inference

True Races

On-­‑demand Valida,on

Tuesday 12 November 13

slide-8
SLIDE 8

RaceMob

Usage ¡Model

8

Applica,on ¡Home (e.g., ¡AppStore) program Users ¡run ¡ instrumented programs Issues

Tuesday 12 November 13

slide-9
SLIDE 9

9

Insights

  • Use ¡sta,c ¡race ¡detec,on ¡to ¡prune ¡memory ¡

accesses ¡that ¡need ¡not ¡be ¡monitored

  • Cost ¡of ¡dynamic ¡detec,on ¡can ¡be ¡

amor,zed ¡across ¡many ¡users

  • Using ¡the ¡crowd, ¡we ¡can ¡detect ¡races ¡that ¡

”majer”

Tuesday 12 November 13

slide-10
SLIDE 10

10

Detected ¡106 ¡real ¡ races ¡in ¡10 ¡ programs ¡with ¡2.3% ¡ average ¡overhead

All Memory Accesses

Poten5ally Racing Accesses

Sta,c ¡ Detec,on

X X X

Crowdsourcing

Race ¡& Hang Race ¡& Crash

Likely Racing Accesses

Dynamic ¡ Context ¡ Inference On-­‑demand Valida,on

RaceMob

True Races

Tuesday 12 November 13

slide-11
SLIDE 11
  • We ¡use ¡RELAY ¡[FSE’07]
  • Analyzes ¡en3re ¡program ¡paths ¡at ¡once
  • Computes ¡& ¡composes ¡per-­‑func3on ¡summaries ¡to ¡scale
  • Tracks ¡locks

Sta,c ¡Data ¡Race ¡Detec,on

11

LS2 = {} x = 1 lock(l) unlock(l) Thread ¡1 ... x = 2 lock(l) unlock(l) Thread ¡2 ... LS1 = {}

x ¡= ¡1 ¡and ¡x ¡= ¡2 ¡are ¡poten,ally ¡racing

Example

Tuesday 12 November 13

slide-12
SLIDE 12

RaceMob

12

Sta,c ¡ Detec,on

X X X

Crowdsourcing

Race ¡& Hang Race ¡& Crash

Poten5ally Racing Accesses

All Memory Accesses

Likely Racing Accesses

Dynamic ¡ Context ¡ Inference

True Races

On-­‑demand Valida,on

Tuesday 12 November 13

slide-13
SLIDE 13

13

  • Inaccuracy ¡in ¡sta,c ¡data ¡race ¡detec,on
  • Pointer ¡alias ¡analysis ¡errors
  • Inability ¡to ¡infer ¡mul3threaded ¡program ¡context
  • DCI ¡checks ¡at ¡run,me:
  • If ¡accesses ¡are ¡from ¡different ¡threads
  • If ¡accesses ¡alias

}

If ¡yes, ¡accesses ¡ are ¡likely ¡racing

Dynamic ¡context ¡inference ¡reduced ¡ the ¡set ¡of ¡accesses ¡to ¡monitor ¡by ¡53%

Dynamic ¡Context ¡Inference ¡(DCI)

Tuesday 12 November 13

slide-14
SLIDE 14

14

x = 1 lock(l) unlock(l) Thread ¡1 x = 2 lock(l) unlock(l) Thread ¡2

Alice

... ...

DCI ¡Example

Address ¡= ¡0xBEEF ThreadID ¡= ¡1 Address ¡= ¡0xBEEF ThreadID ¡= ¡2

Proceed ¡to ¡on-­‑demand ¡data ¡race ¡valida,on

Tuesday 12 November 13

slide-15
SLIDE 15

RaceMob

15

Sta,c ¡ Detec,on

X X X

Crowdsourcing

Race ¡& Hang Race ¡& Crash

All Memory Accesses Dynamic ¡ Context ¡ Inference On-­‑demand Valida,on

Poten5ally Racing Accesses

Likely Racing Accesses True Races

Tuesday 12 November 13

slide-16
SLIDE 16

On-­‑demand ¡Data ¡Race ¡Valida,on

  • Happens-­‑before ¡based
  • Track ¡synchroniza3on
  • Few ¡false ¡posi3ves
  • Minimal ¡tracking
  • Only ¡memory ¡accesses ¡of ¡the ¡target ¡data ¡race
  • Synchroniza3on ¡in ¡between ¡these ¡accesses
  • Un,l ¡enough ¡happens-­‑before ¡edges ¡form
  • Steers ¡thread ¡schedule ¡to ¡expose ¡races

16

unlock(l) lock(l) x=2 x=1 Thread ¡1 Thread ¡2

Tuesday 12 November 13

slide-17
SLIDE 17

17

x = 1 Thread ¡1 Thread ¡2

Alice Bob

x = 1 Thread ¡1 Thread ¡2 x = 1

No ¡Race Race

lock(l) unlock(l) ... x = 2 unlock(l) ... unlock(l) lock(l) ... x = 2 lock(l) unlock(l) ... HB lock(l) No HB

On-­‑demand ¡Valida,on ¡Example

Tuesday 12 November 13

slide-18
SLIDE 18

Detec,on ¡Results

18

RaceMob

Applica,on ¡Home (AppStore, ¡Play) program

NO RACE NOT ALIASING NOT SEEN RACE RACE & CRASH RACE & HANG NOT MULTITHREADED

Tuesday 12 November 13

slide-19
SLIDE 19

RaceMob

19

All Memory Accesses

Poten5ally Racing Accesses

Sta,c ¡ Detec,on

X X X

Crowdsourcing

Race ¡& Hang Race ¡& Crash

Dynamic ¡ Context ¡ Inference On-­‑demand Valida,on

Likely Racing Accesses True Races

Tuesday 12 November 13

slide-20
SLIDE 20

Evalua,on

memcached

  • Detec,on ¡effec,veness
  • Contribu,on ¡of ¡techniques ¡to ¡reducing ¡overhead
  • Breakdown ¡of ¡overhead
  • Comparison ¡to ¡other ¡detectors
  • Comparison ¡to ¡concurrency ¡tes,ng ¡tools
  • Scalability ¡analysis

20

Pbzip2

pfscan

SPLASH-2

Tuesday 12 November 13

slide-21
SLIDE 21

Evalua,on

memcached

21

Pbzip2

pfscan

SPLASH-2

  • Detec,on ¡effec,veness
  • Contribu,on ¡of ¡techniques ¡to ¡reducing ¡overhead
  • Breakdown ¡of ¡overhead
  • Comparison ¡to ¡other ¡detectors
  • Comparison ¡to ¡concurrency ¡tes,ng ¡tools
  • Scalability ¡analysis

Tuesday 12 November 13

slide-22
SLIDE 22

Detec,on ¡Effec,veness

22

R a c e ¡ & ¡ C r a s h

R a c e ¡ & ¡ H a n g

R a c e N

  • t

¡ A l i a s i n g N

  • t

¡ M u l , t h r e a d e d N

  • ¡

R a c e N

  • t

¡ s e e n T

  • t

a l 841 3 3 100 172 267 212 84 106 ¡true ¡ data ¡races

RaceMob ¡detected ¡and ¡confirmed ¡106 ¡data ¡races

Tuesday 12 November 13

slide-23
SLIDE 23

How ¡Does ¡Each ¡Technique ¡ Lower ¡the ¡Overhead ¡?

23

Detec,on ¡,me/ ¡Na,ve ¡execu,on ¡,me

All ¡techniques ¡are ¡required ¡for ¡low ¡overhead

1 8 16 23 30 Ocean ¡(CPU-­‑bound) Pbzip2 ¡(I/O-­‑bound) Dynamic ¡detec,on Sta,c ¡+ ¡dynamic ¡detec,on RaceMob ¡(sta,c ¡+ ¡dynamic ¡+ ¡DCI ¡+on-­‑demand ¡valida,on) ¡aggregate RaceMob ¡per-­‑user 26.1x 3.6x 1.01x 30x 30x 6.3x 5.4x 1.03x

Tuesday 12 November 13

slide-24
SLIDE 24

24

Breakdown ¡of ¡overhead

1.25 2.50 3.75 5.00 Apache SQLite Memcached Fmm Barnes Ocean Pbzip2 Knot Aget Pfscan

Run,me ¡overhead ¡vs. ¡na,ve ¡execu,on

2.3% ¡average ¡run,me ¡overhead ¡per-­‑user

% % % % 1.00 % Instrumenta,on Valida,on

Tuesday 12 November 13

slide-25
SLIDE 25

25

RaceMob

Detected ¡106 ¡real ¡ races ¡in ¡10 ¡ programs ¡with ¡2.3% ¡ average ¡overhead

Sta,c ¡ Detec,on

X X X

Crowdsourcing

Race ¡& Hang Race ¡& Crash

All Memory Accesses Dynamic ¡ Context ¡ Inference On-­‑demand Valida,on

Poten5ally Racing Accesses

Likely Racing Accesses True Races

Tuesday 12 November 13