Race conditions in the Linux kernel present significant challenges for bug confirmation, regression testing, and automatic discovery through fuzzing. This article introduces MAccConc (Memory Access Concurrency), a suite of tools designed to explore and force specific multi-threaded interleavings. By utilizing ASAN instrumentation and KCOV, the tool identifies "communication points" where memory accesses from different threads overlap, allowing analysts to visualize and manipulate execution flow.
A key technical contribution is the use of "count-augmented stack traces" to stably identify memory accesses across different execution runs, independent of volatile data addresses. The system implements a delay injection mechanism via a custom KCOV ioctl, enabling both constraint-style (A-happens-before-B) and fully specified execution orderings. This allows for deterministic testing of complex race conditions that were previously difficult to reproduce reliably.
Top comments (0)