This article introduces MAccConc, a suite of tools designed to explore and identify multi-threaded race conditions within the Linux kernel. The project addresses the difficulty of reproducing concurrent bugs by utilizing KCOV and ASAN instrumentation to trace memory accesses, referred to as "communication points." By implementing stable identifiers through count-augmented stack traces, the tool allows researchers to reliably identify specific execution points across different runs, regardless of dynamic memory allocation changes.
The author provides an automatic A-B-A interleaving tester along with both a terminal and graphical UI for manual exploration. The system works by injecting delays and forcing execution orderings through a custom KCOV ioctl, enabling the validation of bug candidates and the creation of reliable regression tests. Future improvements aim to integrate these techniques with fuzzing frameworks and enhance human-readable traces using DWARF-based type information.
Top comments (0)