Little Perf Improvements & User-Defined Priority Scheduling For Intel's DRM Driver

Written by Michael Larabel in Intel on 19 April 2017 at 06:45 AM EDT. Add A Comment
With Chris Wilson's focus at the Intel Open-Source Technology Center seeming to have shifted in full from the never-releasing xf86-video-intel 3.0 driver -- where he was known for his massive contributions, especially to the SNA acceleration architecture -- to the DRM code, his latest work to talk about is pushing out a hefty patch series for the i915 DRM kernel code.

His latest series has "lots of nice little performance improvements" and also improve the relocation support within the DRM driver. As part of the series is also support for user-defined priority scheduling code for the Intel DRM driver.

Most of the 27 patches are small but also include some bigger patches like asynchronous GPU relocation processing. In terms of the user-defined priority scheduling, here's how Chris explains their approach:
This allows us to change the default priority on a per-context basis, allowing different contexts to be favoured with GPU time at the expense of lower importance work. The user can adjust the context's priority via I915_CONTEXT_PARAM_PRIORITY, with more positive values being higher priority (they will be serviced earlier, after their dependencies have been resolved). Any prerequisite work for an execbuf will have its priority raised to match the new request as required.

Normal users can specify any value in the range of -1023 to 0 [default], i.e. they can reduce the priority of their workloads (and temporarily boost it back to normal if so desired).

Privileged users can specify any value in the range of -1023 to 1023, [default is 0], i.e. they can raise their priority above all overs and so potentially starve the system.

Note that the existing schedulers are not fair, nor load balancing, the execution is strictly by priority on a first-come, first-served basis, and the driver may choose to boost some requests above the range available to users.
This can be used then to wire up support for extensions like EGL_IMG_context_priority for nicely exposing priority level handling to clients.

These latest patches from Chris can be found on the intel-gfx list.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week