• Publications
  • Influence
Finding and Reproducing Heisenbugs in Concurrent Programs
TLDR
For each bug, CHESS consistently reproduces an erroneous execution manifesting the bug, thereby making it significantly easier to debug the problem.
Iterative context bounding for systematic testing of multithreaded programs
TLDR
This paper proposes iterative context-bounding, a new search algorithm that systematically explores the executions of a multithreaded program in an order that prioritizes executions with fewer context switches, and shows both theoretically and empirically that context-bounded search is an effective method for exploring the behaviors of multith readed programs.
A randomized scheduler with probabilistic guarantees of finding bugs
TLDR
It is hypothesized that in practice, many concurrency bugs have small bug-depths, and the efficiency of the schedule randomization is confirmed by detecting previously unknown and known concurrency Bugs in several production-scale concurrent programs.
CMC: a pragmatic approach to model checking real code
TLDR
A new model checker, CMC, which checks C and C++ implementations directly, eliminating the need for a separate abstract description of the system behavior, and reduces missed errors as well as time-wasting false error reports resulting from inconsistencies between the abstract description and the actual implementation.
LiteRace: effective sampling for lightweight data-race detection
TLDR
LiteRace is presented, a very lightweight data race detector that samples and analyzes only selected portions of a program's execution and is able to find more than 70% of data races by sampling less than 2% of memory accesses in a given program execution.
A Combination Method for Generating Interpolants
TLDR
The combination method applies for a broad class of first-order theories, which is characterized as equality-interpolating Nelson-Oppen theories, that includes many useful theories such as the quantifier-free theories of uninterpreted functions, linear inequalities over reals, and Lisp structures.
Yinyang K-Means: A Drop-In Replacement of the Classic K-Means with Consistent Speedup
TLDR
Yinyang K-means is a drop-in replacement of the classic K-Means with an order of magnitude higher performance, and significantly outperforms prior K- means algorithms consistently across all experimented data sets, cluster numbers, and machine configurations.
Using model checking to find serious file system errors
TLDR
This article shows how to use model checking to find serious errors in file systems by building a system, FiSC, and applying it to four widely-used, heavily-tested file systems: ext3, JFS, ReiserFS and XFS.
Effective Data-Race Detection for the Kernel
TLDR
The key novelty of DataCollider is that it uses breakpoint facilities already supported by many hardware architectures to achieve negligible runtime overheads.
DRFX: a simple and efficient memory model for concurrent programming languages
TLDR
The DRFx memory model is presented, which is simple for programmers to understand and use while still supporting many common optimizations, and safely allows aggressive compiler and hardware optimizations within compiler-designated program regions.
...
...