Introduction to the Linux Test Project Fuzzy Sync C library, developed for reproducing data races in the Kernel from user land. Will cover a simple contrived data race, entirely in user land, to demonstrate the basics. Then we will move onto real world examples within the kernel, including when a delay bias is required to ensure a particular chronological order of events.
Fuzzy Sync was developed for reproducing Linux kernel bugs, however it may be used to collide events in user land, another kernel or other contexts. No particular kernel features or instrumentation are required. The Linux Test Project is a large test suite for the Linux kernel and POSIX. Most of the tests are stand alone executables which run in user land and interact with some low level kernel interface. Fuzzy Sync is primarily used in regression tests which attempt to reproduce a particular bug. This ensures the bug is not reintroduced and indicates if a patch needs back porting to older kernels.