The Community for Technology Leaders
Green Image
Issue No. 01 - Jan.-Feb. (2017 vol. 14)
ISSN: 1545-5971
pp: 22-36
Christoph Borchert , Department of Computer Science, Technische Universität Dortmund, Dortmund, Germany
Horst Schirmeier , Department of Computer Science, Technische Universität Dortmund, Dortmund, Germany
Olaf Spinczyk , Department of Computer Science, Technische Universität Dortmund, Dortmund, Germany
ABSTRACT
Recent studies indicate that transient memory errors (soft errors) have become a relevant source of system failures. This paper presents a generic software-based fault-tolerance mechanism that transparently recovers from memory errors in object-oriented program data structures. The main benefits are the flexibility to choose from an extensible toolbox of easily pluggable error detection and correction schemes, such as Hamming and CRC codes. This is achieved by a combination of aspect-oriented and generative programming techniques. Furthermore, we present a wait-free synchronization algorithm for error detection in data structures that are used concurrently by multiple threads of control. We give a formal correctness proof and show the excellent scalability of our approach in a multiprocessor environment. In a case study, we present our experiences with selectively hardening the eCos operating system and its benchmark suite. We explore the trade-off between resiliency and performance by choosing only the most vulnerable data structures for error recovery. Thereby, the total number of system failures, manifesting as silent data corruptions and crashes, is reduced by 69.14 percent at a negligible runtime overhead of 0.36 percent.
INDEX TERMS
Redundancy, Data structures, Runtime, Instruction sets, Benchmark testing, Programming, Kernel
CITATION

C. Borchert, H. Schirmeier and O. Spinczyk, "Generic Soft-Error Detection and Correction for Concurrent Data Structures," in IEEE Transactions on Dependable and Secure Computing, vol. 14, no. 1, pp. 22-36, 2017.
doi:10.1109/TDSC.2015.2427832
170 ms
(Ver 3.3 (11022016))