Making lock-free data structures verifiable with artificial transactions

Xinhao Yuan, David Williams-King, Junfeng Yang, Simha Sethumadhavan
2015 Proceedings of the 8th Workshop on Programming Languages and Operating Systems - PLOS '15  
Among all classes of parallel programming abstractions, lock-free data structures are considered one of the most scalable and efficient because of their fine-grained style of synchronization. However, they are also challenging for developers and tools to verify because of the huge number of possible interleavings that result from fine-grained synchronizations. This paper address this fundamental problem between performance and verifiability of lock-free data structures. We present TXIT, a
more » ... that greatly reduces the set of possible interleavings by inserting transactions into the implementation of a lock-free data structure. We leverage hardware transactional memory support from Intel Haswell processors to enforce these artificial transactions. Evaluation on six popular lock-free data structures shows that TXIT makes it easy to verify lock-free data structures while incurring acceptable runtime overhead. Further analysis shows that two inefficiencies in Haswell are the largest contributors to this overhead.
doi:10.1145/2818302.2818309 dblp:conf/sosp/YuanWYS15 fatcat:62beyourzva45jmvja35jzd5ue