Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Preemption Sealing for Efficient Concurrency Testing

Thomas Ball, Sebastian Burckhardt, Katherine Coons, Madanlal Musuvathi, and Shaz Qadeer

Abstract

The choice of where a thread scheduling algorithm preempts one thread in order to execute another is essential to reveal concurrency errors such as atomicity violations, livelocks, and deadlocks. We present a scheduling strategy called preemption sealing that controls where and when a scheduler is disabled from preempting threads during program execution. We demonstrate that this strategy is effective in addressing two key problems in testing industrial-scale concurrent programs: (1) tolerating existing errors in order to find more errors, and (2) composi- tional testing of layered, concurrent systems. We evaluate the effective- ness of preemption sealing, implemented in the Chess tool, for these two scenarios on newly released concurrency libraries for Microsoft’s .NET framework.

Details

Publication typeInproceedings
Published inConference on Tools and Algorithms for the Construction and Analysis of Systems
PublisherSpringer Verlag
> Publications > Preemption Sealing for Efficient Concurrency Testing