Today I released the first public version of KernelStrider system: 0.1 alpha 1.
It can already be used to analyze real-world kernel modules and help reveal data races there. Still it is not fully automatic yet. It needs the user to mark ("annotate") the constructs in the code of the kernel module that define ordering rules (e.g. to specify that execution of a file operation callback cannot start before the callback is properly registered).
In the future versions, the system will be improved to be able to detect more synchronization primitives and ordering rules automatically.
A step-by-step guide on how to build and install KernelStrider and how use it with ThreadSanitizer to reveal data races in a kernel module is available here: