Intel Graphics Driver's New Parallel Submission uAPI Landing For Linux 5.16

This multi-LRC / parallel submission code for their GuC engine and exposed as a new user-space API is ready to go for Linux 5.16. This is part of their long ongoing effort around GuC submission handling and improving their user-space API as they integrate the DRM scheduler and make other fundamental improvements. This new uAPI is being worked on since their existing bonding uAPI is considered "broken" when using GuC submission. For those interested in all of the fine technical details on their parallel submission uAPI design and motivation for doing so can see this kernel documentation.
The existing bonding uAPI is completely broken with GuC submission because whether a submission is a single context submit or parallel submit isn't known until execbuf time activated via the I915_SUBMIT_FENCE. To submit multiple contexts in parallel with the GuC the context must be explicitly registered with N contexts and all N contexts must be submitted in a single command to the GuC. The GuC interfaces do not support dynamically changing between N contexts as the bonding uAPI does. Hence the need for a new parallel submission interface. Also the legacy bonding uAPI is quite confusing and not intuitive at all. Furthermore I915_SUBMIT_FENCE is by design a future fence, so not really something we should continue to support.
Meanwhile in user-space the Intel Media Driver for video acceleration is ready with pending code for making use of the parallel submission interface starting with Alder Lake P hardware.
This parallel submission code was submitted on Thursday as part of this drm-intel-gt-next PR. This pull request also has improvements for ensuring old pages are flushed from caches before making them available to user-space clients along with other code improvements.
4 Comments