Eurosys16 doesn’t even start until monday (April 18th) but papers are starting to pop up on the internet. This one talks about how the massive complexity in the Linux scheduler has caused it to lose it’s way on it’s prime directive: to ensure that ready threads are scheduled on available cores. Apparently, this is broken in Linux.
Here’s a small taste:
“The main contribution of this work is the discovery andstudy of four performance bugs in the Linux scheduler.These bugs cause the scheduler to leave cores idle while runnable threads are waiting for their turn to run. Resulting performance degradations are in the range 13-24% for typical Linux workloads, and reach 138x in some corner cases.”
They created a tool called “sanity checker” that detects scheduling problems that htop, sar and perf can not detect.
You can find the 16 page paper here: