Concurrency Testing using Custom Linux Schedulers
- Track: Testing and Continuous Delivery
- Room: UD6.215
- Day: Saturday
- Start: 12:00
- End: 12:25
- Video only: ud6215
- Chat: Join the conversation!
Consider you want to have a concurrency bug that requires threads to run in a specific order. Wouldn't it be great if you could stop and start threads at random? Prevent them from being scheduled onto the CPU? And the best part: Without the application being able to prevent this, like it could do with POSIX STOP and START signals? In come the scheduler extensions for the Linux Kernel. Introduced in version 6.12, they allow you to quickly write your own schedulers with eBPF, and can be the base for simple libraries that enable you to start and stop threads directly in the Linux kernel. This opens the possibility of creating complex scheduler scenarios at a whim.
In this talk, we'll show you a prototypical sched_ext-based library for concurrency testing that we used to reproduce bugs when working on the OpenJDK.
Speakers
Johannes Bechberger | |
Jake Hillion |