Linux developer Qais Yousef with Google has announced the alpha release of Sched QoS as a new initiative for user-space assisted scheduling. The scheduling model in turn is based in part on Apple’s quality of service classes used by iOS for classifying software as user interactive, user initiative, utility, or background tasks.
Due to the very diverse hardware platforms where Linux runs and the range of workloads encountered, Qais Yousef has been pursuing Sched QoS for user-space assisted scheduling. Sched QoS relies on configuration-based hinting that administrators can set for different applications to tag them according to power/performance expectations with the different QoS classes.
“The current setup is usable and should provide tangible results for those interested. Corner cases where it fails will be visible though under comprehensive testing. See schbench+kernel build results below for example.
I won’t repeat our LPC discussion, but we need multi modal wake up path and coherent decision making between wake up and load balancer. Both items are being worked on already. Push based load balance for fair is on the list.
For best perf/watt under schedutil, we need to introduce the concept of rampup multiplier to help counter DVFS related latencies. Also this is WIP and there were patches in the past that will be rebased and reposted.”
The results are also promising so far for more responsive experience. There is also the possibility of throughput gains too but some bugs have led to latency hits there.
Those interested in learning more about Sched QoS can see this Linux kernel mailing list post announcing the project and its v0.1 alpha release.
There is also this presentation from last year’s Linux Plumbers Conference in Tokyo around this user-space assisted scheduling effort.
