1 / 15

RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking

Yuan Yu(MSR) Tom Rodeheffer(MSR) Wei Chen(UC Berkeley) SOSP 2005. RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking. Dynamic Data Race Detection. Lockset: verify locking discipline for shared memory Detect race regardless of thread scheduling

allmon
Download Presentation

RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Yuan Yu(MSR) Tom Rodeheffer(MSR) Wei Chen(UC Berkeley) SOSP 2005 RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking

  2. Dynamic Data Race Detection • Lockset: verify locking discipline for shared memory • Detect race regardless of thread scheduling • False positives because other synchronization primitives (fork/join, signal/wait) not supported • Happens-before: track partial order of program events • Supports general synchronization primitives • Higher overhead compared to lockset • False negatives due to sensitivity to thread scheduling RaceTrack = Lockset + Happens-before

  3. False positive using Lockset Tracking accesses to X

  4. RaceTrack Notations

  5. RaceTrack Algorithm

  6. Avoiding Lockset's false positive (1)

  7. Avoiding Lockset's false positive (2)

  8. RaceTrack's state machine

  9. Additional ideas from paper • Accuracy vs performance & scalability tradeoff • Object granularity tracking • Track subset of (array) objects • Prune vector clock • Annotations to eliminate false positives • Warnings report analysis • Ranking and classification • Multiple stack traces

  10. .NET framework Microsoft CLR Implementation

  11. RaceTrack Object Layout

  12. RaceTrack Encodings

  13. Evaluation • CLR Regression tests • 2122 tests (0.5 MLOC) • 48 warnings • Performance • 5 real world programs

  14. Performance • 3X slowdown on memory intensive programs • < 2X on other programs • 1.2X memory usage

  15. Conclusions • Eliminate Lockset false positives using happens-before • Refine state machine based on common coding style • Trade off accuracy for performance/scalability • Improved warnings reports

More Related