Intel Linux Graphics Driver Scheduling Improvements In The Works
Longtime open-source Intel Linux kernel graphics driver developer Chris Wilson has out a big new set of patches.
Last month I wrote about the work done by Chris Wilson on fair low-latency scheduling for the Intel graphics driver. At the time it amounted to 28 patches for this code inspired by the BFS/MuQSS CPU scheduler. But now it's morphed into a much larger scheduling rework that is at 68 patches.
The new patches are focused on the scheduler side of the Intel Direct rendering Manager code. There are patches working to reduce locking contention, asynchronous GTT unbinding, fair low-latency scheduling support, new infrastructure for ring scheduling, and ultimately enabling this new ring scheduling code for aging Gen6/Gen7 graphics.
The behavior of the fair low-latency scheduling is laid out via this patch message. The async GTT unbinding is interesting as well and should let user-space queue up more work without blocking other clients. Ending out the patch series is ring scheduling for Gen6/Gen7 graphics. Yes, old Sandy Bridge / Ivy Bridge era hardware to use this priority-sorted topographical scheduler code rather than a global FIFO approach. No performance numbers were provided as part of the patches.
We will see where this work leads and how the review and testing goes. It's too late to see it for Linux 5.9 but could potentially come in 5.10 if it's received well.
Last month I wrote about the work done by Chris Wilson on fair low-latency scheduling for the Intel graphics driver. At the time it amounted to 28 patches for this code inspired by the BFS/MuQSS CPU scheduler. But now it's morphed into a much larger scheduling rework that is at 68 patches.
The new patches are focused on the scheduler side of the Intel Direct rendering Manager code. There are patches working to reduce locking contention, asynchronous GTT unbinding, fair low-latency scheduling support, new infrastructure for ring scheduling, and ultimately enabling this new ring scheduling code for aging Gen6/Gen7 graphics.
The behavior of the fair low-latency scheduling is laid out via this patch message. The async GTT unbinding is interesting as well and should let user-space queue up more work without blocking other clients. Ending out the patch series is ring scheduling for Gen6/Gen7 graphics. Yes, old Sandy Bridge / Ivy Bridge era hardware to use this priority-sorted topographical scheduler code rather than a global FIFO approach. No performance numbers were provided as part of the patches.
We will see where this work leads and how the review and testing goes. It's too late to see it for Linux 5.9 but could potentially come in 5.10 if it's received well.
3 Comments