Being worked on for a while has been a “Fair” DRM scheduler inspired by Linux’s CFS scheduler and aiming for better performance and scheduling behavior between multiple GPU interactive clients sharing GPU resources.
The DRM scheduler is currently used by multiple Direct Rendering Manager (DRM) drivers for what originally began as just the AMDGPU scheduler. Tvrtko Ursulin of Igalia has been leading the effort on a Fair DRM scheduler for better fairness and scheduling heuristics around multiple interacrive clients running in parallel for heavy GPU workloads.
The emphasis with the DRM Fair Scheduler continues to be on better scheduling than the existing FIFO behavior to avoud priority starvation, making the DRM scheduler code simpler, and all-around better behavior than the status quo.
Posted today to the dri-devel mailing list was the v5 patch series for the DRM Fair Scheduler. Additionally, Tvrtko Ursulin has posted to the Igalia blog with more details on this scheduler work.
Tvrtko concludes in his Igalia blog post:
“From all the above it appears that the experiment was successful. We were able to simplify the code base, solve the priority starvation and improve scheduling fairness and GPU time allocation for interactive clients. No scheduling regressions have been identified to date.”
The code remains under review but will hopefully work its way to the mainline kernel soon.