Yuan Yu(MSR) Tom Rodeheffer(MSR) Wei Chen(UC Berkeley) SOSP 2005

Slides:



Advertisements
Similar presentations
Sequential Three-way Decision with Probabilistic Rough Sets Supervisor: Dr. Yiyu Yao Speaker: Xiaofei Deng 18th Aug, 2011.
Advertisements

A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Pallavi Joshi  Chang-Seo Park  Koushik Sen  Mayur Naik ‡  Par Lab, EECS, UC Berkeley‡
A lightweight framework for testing database applications Joe Tang Eric Lo Hong Kong Polytechnic University.
1 Chao Wang, Yu Yang*, Aarti Gupta, and Ganesh Gopalakrishnan* NEC Laboratories America, Princeton, NJ * University of Utah, Salt Lake City, UT Dynamic.
An Case for an Interleaving Constrained Shared-Memory Multi-Processor Jie Yu and Satish Narayanasamy University of Michigan.
Dynamic Optimization using ADORE Framework 10/22/2003 Wei Hsu Computer Science and Engineering Department University of Minnesota.
Thread Criticality Predictors for Dynamic Performance, Power, and Resource Management in Chip Multiprocessors Abhishek Bhattacharjee Margaret Martonosi.
Efficient, Context-Sensitive Dynamic Analysis via Calling Context Uptrees Jipeng Huang, Michael D. Bond Ohio State University.
Race Detection for Android Applications
Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets Tayfun Elmas 1, Shaz Qadeer 2, Serdar Tasiran 1 1 Koç University, İstanbul,
A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Koushik Sen CS 265.
Eraser: A Dynamic Data Race Detector for Multithreaded Programs STEFAN SAVAGE, MICHAEL BURROWS, GREG NELSON, PATRICK SOBALVARRO and THOMAS ANDERSON.
Resurrector: A Tunable Object Lifetime Profiling Technique Guoqing Xu University of California, Irvine OOPSLA’13 Conference Talk 1.
CORK: DYNAMIC MEMORY LEAK DETECTION FOR GARBAGE- COLLECTED LANGUAGES A TRADEOFF BETWEEN EFFICIENCY AND ACCURATE, USEFUL RESULTS.
Scaling Model Checking of Dataraces Using Dynamic Information Ohad Shacham Tel Aviv University IBM Haifa Lab Mooly Sagiv Tel Aviv University Assaf Schuster.
Dynamic Data Race Detection. Sources Eraser: A Dynamic Data Race Detector for Multithreaded Programs –Stefan Savage, Michael Burrows, Greg Nelson, Patric.
Today’s Agenda  Midterm: Nov 3 or 10  Finish Message Passing  Race Analysis Advanced Topics in Software Engineering 1.
Atomicity in Multi-Threaded Programs Prachi Tiwari University of California, Santa Cruz CMPS 203 Programming Languages, Fall 2004.
Big Picture Lab 4 Operating Systems Csaba Andras Moritz.
TaintCheck and LockSet LBA Reading Group Presentation by Shimin Chen.
Why Events Are A Bad Idea (for high-concurrency servers) By Rob von Behren, Jeremy Condit and Eric Brewer.
CS533 Concepts of Operating Systems Class 3 Data Races and the Case Against Threads.
Capriccio: Scalable Threads for Internet Services ( by Behren, Condit, Zhou, Necula, Brewer ) Presented by Alex Sherman and Sarita Bafna.
Review for Test 2 i206 Fall 2010 John Chuang. 2 Topics  Operating System and Memory Hierarchy  Algorithm analysis and Big-O Notation  Data structures.
Presenter : Shih-Tung Huang Tsung-Cheng Lin Kuan-Fu Kuo 2015/6/26 EICE team dIP: A Non-Intrusive Debugging IP for Dynamic Data Race Detection in Many-core.
CS533 Concepts of Operating Systems Class 3 Monitors.
Parallelizing Data Race Detection Benjamin Wester Facebook David Devecsery, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan.
Cormac Flanagan UC Santa Cruz Velodrome: A Sound and Complete Dynamic Atomicity Checker for Multithreaded Programs Jaeheon Yi UC Santa Cruz Stephen Freund.
/ PSWLAB Eraser: A Dynamic Data Race Detector for Multithreaded Programs By Stefan Savage et al 5 th Mar 2008 presented by Hong,Shin Eraser:
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
Accelerating Precise Race Detection Using Commercially-Available Hardware Transactional Memory Support Serdar Tasiran Koc University, Istanbul, Turkey.
Eraser: A Dynamic Data Race Detector for Multithreaded Programs STEFAN SAVAGE, MICHAEL BURROWS, GREG NELSON, PATRICK SOBALVARRO, and THOMAS ANDERSON Ethan.
Dynamic Resource Monitoring and Allocation in a virtualized environment.
Packed Object Synchronization Introduction Many Java applications and frameworks must deal directly with native data. Packed Objects provide an approach.
Breadcrumbs: Efficient Context Sensitivity for Dynamic Bug Detection Analyses Michael D. Bond University of Texas at Austin Graham Z. Baker Tufts / MIT.
Dynamic Data Race Detection. Sources Eraser: A Dynamic Data Race Detector for Multithreaded Programs –Stefan Savage, Michael Burrows, Greg Nelson, Patric.
Kernel Locking Techniques by Robert Love presented by Scott Price.
Detecting Atomicity Violations via Access Interleaving Invariants
HARD: Hardware-Assisted lockset- based Race Detection P.Zhou, R.Teodorescu, Y.Zhou. HPCA’07 Shimin Chen LBA Reading Group Presentation.
High-level Interfaces for Scalable Data Mining Ruoming Jin Gagan Agrawal Department of Computer and Information Sciences Ohio State University.
Execution Replay and Debugging. Contents Introduction Parallel program: set of co-operating processes Co-operation using –shared variables –message passing.
Eraser: A dynamic Data Race Detector for Multithreaded Programs Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson Presenter:
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
CS61C L20 Thread Level Parallelism II (1) Garcia, Spring 2013 © UCB Senior Lecturer SOE Dan Garcia inst.eecs.berkeley.edu/~cs61c.
Clock Snooping and its Application in On-the-fly Data Race Detection Koen De Bosschere and Michiel Ronsse University of Ghent, Belgium Taipei, TaiwanDec.
Big Picture Lab 4 Operating Systems C Andras Moritz
FastTrack: Efficient and Precise Dynamic Race Detection [FlFr09] Cormac Flanagan and Stephen N. Freund GNU OS Lab. 23-Jun-16 Ok-kyoon Ha.
Gargamel: A Conflict-Aware Contention Resolution Policy for STM Pierpaolo Cincilla, Marc Shapiro, Sébastien Monnet.
1 ”MCUDA: An efficient implementation of CUDA kernels for multi-core CPUs” John A. Stratton, Sam S. Stone and Wen-mei W. Hwu Presentation for class TDT24,
Detecting Data Races in Multi-Threaded Programs
RaceMob : Crowd-sourced Data Race Detection
Presenter: Godmar Back
Why Events Are A Bad Idea (for high-concurrency servers)
Interactive Offline Tracking for Color Objects
CS533 Concepts of Operating Systems Class 3
Effective Data-Race Detection for the Kernel
Yongle Zhang, Serguei Makarov, Xiang Ren, David Lion, Ding Yuan
Indranil Roy High Performance Computing (HPC) group
EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – F16.
Presented by: Huston Bokinsky Ying Zhang 25 April, 2013
Jipeng Huang, Michael D. Bond Ohio State University
Optimizing MapReduce for GPUs with Effective Shared Memory Usage
Immersed Boundary Method Simulation in Titanium Objectives
CS533 Concepts of Operating Systems Class 3
RushNet: Practical Traffic Prioritization for Saturated Wireless Sensor Networks Chieh-Jan Mike Liang†, Kaifei Chen‡, Nissanka Bodhi Priyantha†, Jie Liu†,
Lecture 2 The Art of Concurrency
Why Events Are a Bad Idea (for high concurrency servers)
Runtime Safety Analysis of Multithreaded Programs
Dynamic Race Prediction in Linear Time
Eraser: A dynamic data race detector for multithreaded programs
Presentation transcript:

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

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

False positive using Lockset Tracking accesses to X Inst State Lockset 1 Virgin { } 3 Exclusive:t 6 Shared Modified {a} 9 Report race

RaceTrack Notations Lt Cx Bu Sx ti Notation Meaning Lockset of thread t Cx Lockset of memory x Bu Vector clock of thread u Sx Threadset of memory x ti Thread t at clock time i

RaceTrack Algorithm Lt Cx Bt Sx t1 Notation Meaning Lockset of thread t Cx Lockset of memory x Bt Vector clock of thread t Sx Threadset of memory x t1 Thread t at clock time 1

Avoiding Lockset's false positive (1) Inst Cx Sx Lt Bt Lu Bu All { } {t1} - 1 {t2} { t1,u1 } 2 {a} 3 4 5 6 {t2,u1} 7 8

Avoiding Lockset's false positive (2) Inst Cx Sx Lt Bt Lv Bv 8 {a} {t2,u1} { } - 9 {t2} 10 {t3,u1} {t2,v1} 11 12 {t3} 13 14 15 {t3,v1} 16

RaceTrack's state machine

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

Microsoft CLR Implementation .NET framework

RaceTrack Object Layout

RaceTrack Encodings

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

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

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