software
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.
896.4 ms vs 1119.7 ms (fair scheduler)
perf sched latency (total, lower is better) — Round-Robin (real kernel)
15.37 MiB/s vs 11.34 MiB/s (fair scheduler)
sysbench fileio read throughput — Round-Robin (real kernel)
93.04 vs 76.82 (Round-Robin)
sysbench CPU events/s — fair scheduler (real kernel, higher is better)
133/133 assertions (24 test cases)
schedsim unit tests passing (Catch2)
1 concordant, 1 discordant, 2 not-comparable (see sim/README.md)
schedsim vs. real kernel: concordant/discordant/not-comparable findings
within 0.2% (3360 simulated vs. 3356 theoretical)
CfsLite proportional-share accuracy vs. theoretical calculation (nice-mix workload)
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.