Nouveau Linux DRM Driver Making Progress On NVIDIA GSP Support

Written by Michael Larabel in Nouveau on 26 October 2022 at 06:27 AM EDT. Add A Comment
NOUVEAU
With the recent Linux 6.1 merge window there sadly weren't any Nouveau Direct Rendering Manager (DRM) driver improvements for getting the RTX 30 "Ampere" OpenGL support working yet with the mainline kernel even with RTX 40 series having launched. Needless to say, there also wasn't any progress on the re-clocking front for getting the GTX 900 series and later running in a performant manner on this open-source driver. But the Nouveau developers at Red Hat haven't simply been idling but rather have been working on the NVIDIA GPU System Processor (GSP) support for improving the RTX 20 "Turing" support and newer.

Back in May NVIDIA announced an open-source Linux GPU kernel driver. That open-source NVIDIA GPU kernel driver is available as an option with their R515+ driver stack but in current form isn't suitable for mainlining. That open-source driver targets RTX 20 "Turing" GPUs and newer that feature the GPU System Processor (GSP).

As explained in that earlier article, the GPU System Processor and this driver architecture that's come about in recent times is for offloading some GPU initialization/management tasks to the GPU rather than executing on the CPU. The GSP is binary-only firmware loaded at run-time. The open-source kernel driver explicitly depends upon the GSP-supported graphics processors. The GSP is a RISC-V based block that succeeded their earlier Falcon micro-controller on earlier NVIDIA GPUs.

Leveraging the GSP by the open-source driver frees up some conventional driver tasks and less work involved in the driver bring-up. Granted, this IP block backed by a firmware blob plays a critical role.

Ben Skeggs of Red Hat and Nouveau's longtime DRM kernel maintainer has been working on getting the GSP supported by the Nouveau driver.


DRM subsystem maintainer David Airlie, also of Red Hat, has been queuing this GSP bring-up work for Nouveau via the 01.01-gsp-rm branch of his Linux Git repository.

This initial GSP support for Turing and newer with the Nouveau driver is still being worked on but that Git branch can be checked out for those interested. Once that Nouveau-GSP support is squared away and (hopefully) mainlined, it should help with improving the recent generations of NVIDIA driver support on this open-source driver for being able to get a performant experience in being able to overcome the reclocking limitations that have left Nouveau otherwise stagnate for years.

This Nouveau GSP branch does pull in a lot of header files that were open-sourced by NVIDIA as part of their open-source GPU kernel driver but is adapted to the existing Nouveau kernel driver codebase. So go check it out if interested in this early Nouveau GSP enablement work.

This kernel work along with NVK as an open-source NVIDIA Vulkan driver gives hope for a more interesting open-source NVIDIA driver experience for Linux enthusiasts/gamers in 2023.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com 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 OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week