Turnstile
schedsim: a C++ CPU-scheduling simulation framework (RR/priority/MLFQ/CFS-lite) validated against real Linux 6.12.25 kernel benchmark data from a hand-patched round-robin scheduler.
Started with a real Linux kernel (6.12.25, Kali Rolling 2025.2) recompiled with a hand-patched round-robin scheduler in kernel/sched/fair.c, benchmarked against the unmodified kernel using sysbench, stress-ng, and perf -- real, one-off, unrepeatable work, preserved unmodified under archive/original/ and validation/kernel-6.12.25/. Added schedsim: a reusable discrete-event C++ simulation framework implementing round-robin, fixed-priority (with aging), OSTEP-style MLFQ (with the exact allotment-based anti-gaming rule), and a classic-CFS approximation (Linux's real nice-to-weight table), whose scheduler-level findings (fairness, scheduling delay) are checked against the real kernel measurement using an explicit three-tier methodology (direct / qualitative-direction-only / not-comparable) -- including one honestly-reported discordant finding, not a forced match. Corrects a factual note from the original report: a 6.12 kernel's fair scheduling class is EEVDF-era, not classic CFS.
Full source, tests, and documentation live in the repo.
view on github →