AMDGPU Squeezes In Revised Context Priority Handling For Linux 5.1
With the Linux 5.1 kernel cycle soon to kick-off, an early batch of fixes for the AMDGPU DRM driver and other fixes were sent in on Thursday to queue along with all of the new functionality being staged in DRM-Next.
There's a lot of DRM improvements and throughout all the kernel subsystems of new material queuing up for Linux 5.1. On the AMDGPU side there is AMDGPU DC seamless boot bits, PCI Express bandwidth utilization is now exported to user-space, Vega power management updates, DCC support for scanout surfaces, better page-flipping in DC, and various Vega 20 fixes.
Sent in on Thursday are some minor code fixes and clean-ups, fixing DebugFS access to registers beyond the MMIO bar size, and other mostly mundane work. One item standing out a bit more as a "fix" is a revised AMDGPU DRM interface for context priority handling.
In recent kernel cycles we've seen more work on context priority handling and the ability to elevate certain contexts to a higher priority than the rest. One of those use-cases for this context priority handling is in the case of virtual reality (VR) in trying to ensure all rendering gets done in time and as expected to avoid any potential motion sickness situations and other less than ideal SteamVR Linux gaming experiences due to slowdowns. There's also other potential use-cases and ways that this context priority support is exposed in user-space.
With Linux 5.1 there is a new interface, AMDGPU_SCHED_OP_CONTEXT_PRIORITY_OVERRIDE, to override the context priority for a file descriptor. This addition was spearheaded by RADV Vulkan driver lead developer Bas Nieuwenhuizen. He explained, "Using these overrides was recommended by Christian instead of trying to submit from a master fd, and I am adding a way to override a single context instead of the entire process so we can only upgrade a single Vulkan queue and not effectively the entire process." Thus more granularity for the overriding the priority the work on the GPU.
The rest of the AMDGPU/Radeon fixes sent in yesterday can be found via this pull request.
There's a lot of DRM improvements and throughout all the kernel subsystems of new material queuing up for Linux 5.1. On the AMDGPU side there is AMDGPU DC seamless boot bits, PCI Express bandwidth utilization is now exported to user-space, Vega power management updates, DCC support for scanout surfaces, better page-flipping in DC, and various Vega 20 fixes.
Sent in on Thursday are some minor code fixes and clean-ups, fixing DebugFS access to registers beyond the MMIO bar size, and other mostly mundane work. One item standing out a bit more as a "fix" is a revised AMDGPU DRM interface for context priority handling.
In recent kernel cycles we've seen more work on context priority handling and the ability to elevate certain contexts to a higher priority than the rest. One of those use-cases for this context priority handling is in the case of virtual reality (VR) in trying to ensure all rendering gets done in time and as expected to avoid any potential motion sickness situations and other less than ideal SteamVR Linux gaming experiences due to slowdowns. There's also other potential use-cases and ways that this context priority support is exposed in user-space.
With Linux 5.1 there is a new interface, AMDGPU_SCHED_OP_CONTEXT_PRIORITY_OVERRIDE, to override the context priority for a file descriptor. This addition was spearheaded by RADV Vulkan driver lead developer Bas Nieuwenhuizen. He explained, "Using these overrides was recommended by Christian instead of trying to submit from a master fd, and I am adding a way to override a single context instead of the entire process so we can only upgrade a single Vulkan queue and not effectively the entire process." Thus more granularity for the overriding the priority the work on the GPU.
The rest of the AMDGPU/Radeon fixes sent in yesterday can be found via this pull request.
Add A Comment