Papers for

operating system testers

Papers whose findings have a practical use for this group, as judged from the abstract. Open a paper to read what it means in practice.

Linux kernel data race detection improved by separating input and scheduling searches

Breaking the Coupling: Efficient Concurrency Fuzzing for Linux Kernel Data Race Detection

Abstract: Detecting data races in the Linux kernel requires exploring both the input space and the thread-interleaving space. Existing kernel concurrency fuzzers couple these two searches by exploring interleavings during fuzzing, often spending substantial scheduling effort on inputs with little potential to trigger real races. In this paper, we present a new concurrency fuzzing paradigm that decouples concurrent-input generation from thread-interleaving exploration, enabling expensive scheduling to focus on promising inputs. To identify inputs that warrant targeted scheduling, we introduce May Race Pairs (MRPs), which represent conflicting memory-access pairs observed within a dynamically determined time threshold. Our framework first generates and executes concurrent syscall groups without controlled scheduling, collecting MRPs to guide further input mutation and identify schedule-worthy inputs. It then uses a separate scheduling instance to explore targeted interleavings and confirm real data races. To improve the effectiveness of both stages, we incorporate LLM-assisted semantic mutation for generating diverse syscall groups, backpressure-guided dynamic threshold control for balancing candidate production and scheduling consumption, and history-aware context recovery, context-aware interleaving scheduling, and candidate MRP prioritization for efficient race confirmation. We implement our framework for the Linux kernel and evaluate it on eight common kernel modules in Linux 6.17. It discovers 187 unique real-world data races, including 59 harmful races. Under the same testing budget, our approach detects substantially more data races than existing kernel concurrency fuzzers, including SegFuzz and CONZZER. These results demonstrate the effectiveness of decoupling concurrent-input generation from interleaving exploration and concentrating scheduling effort on promising candidates.

Thu 22 OctOperating Systems
The gist
Detecting bugs called data races in the Linux kernel is difficult because it needs testing many inputs and many ways threads can run at the same time. Existing tools mix these two steps, wasting effort on inputs unlikely to cause problems. The authors created a new method that separates generating test inputs from exploring thread timing, focusing detailed checks only on inputs likely to reveal races. Their approach found many more real bugs than previous tools by first running tests without careful scheduling, spotting risky memory accesses, and then targeting those inputs with focused timing exploration.
Open → 2610.30813v1