Nova: New Rust driver for NVIDIA GPUs coming to Linux 6.15

Nova, Rust

A year ago Red Hat announcedto their work on a new open source driver for managing NVIDIA GPUs on Linux systems,New»Unlike its predecessor, Nouveau, Nova relies on delegating initialization and control operations to a GSP (GPU System Processor) microcontroller integrated into the graphics card itself.

And now, in a matter of a few months (unlike other new projects), it seems that the driver has gained enough maturity to be proposed as a set of patches to be integrated into the Linux 6.15 kernel, this being the initial version of the driver on Linux.

Nova, it is designed as a Linux kernel module, which relies on the DRM subsystem to manage interaction with the GPU from user spaceIts development is seen as an evolution of Nouveau, with the key difference being that it is exclusively targeted at GPUs with GSP firmware, encompassing models from the NVIDIA GeForce RTX 2000 series based on the Turing microarchitecture.

Differences with Nouveau and Advantages of Nova

Nova seeks to solve structural problems of Nouveau, which requires a major overhaul in areas such as memory management (VMM/MMU) and code locks. Unlike Nouveau, Nova leverages NVIDIA's GSP firmware to simplify GPU initialization and control, reducing code complexity and eliminating the need to support older cards.

The Nova Code it's written in Rust, a language that not only improves security by minimizing errors in memory management, but also allows the creation of reusable layers and abstractions for the development of other drivers.

The project It is supported by various parallel initiatives, such as rust-device for creating drivers, rust-pci for interaction with the PCI bus and rust-drm for integration with the DRM and GEM subsystems. These tools are also being used in the development of drm-asahi, the Rust driver for the Apple M1 and M2 GPUs, suggesting a convergence in the infrastructure of graphics drivers written in Rust.

The use of language Rust in this development is no coincidence, since Rust offers mechanisms that facilitate review and refactoring, which contributes to greater project stability. The adoption of this language in the Linux kernel responds to a broader strategy that seeks to modernize module writing and make development more accessible for new contributors.

This isn't the only ongoing effort to integrate Rust into the kernel. Other drivers and systems are currently being developed in this language, such as the Apple AGX GPU driver, support for NVMe storage, the PuzzleFS file system, and various security-related and device management implementations. The trend toward Rust continues to gain momentum in the Linux ecosystem, marking a significant shift in how security and stability are addressed in operating system kernel development.

Implementation phases

Currently, Nova is in its first phase of implementation, incorporated nova-core, a module with approximately 400 lines of code that establishes the abstractions necessary to communicate with the GSP firmware. Along with nova-core, essential links for integration with NVIDIA firmware have also been added.

It is worth mentioning that, Nova was initially planned to arrive on Linux 6.14 with a nova-core module consisting of 232 lines of code, but in the end it was not included because Greg Kroah-Hartman mentioned some details that needed polishing.

With the new confirmation that it will now be included, Now the controller will move on to the next phases in which it is planned to add:

  • nova-drm: a DRM (Direct Rendering Manager) driver to manage interaction with the GPU from user space.
  • VFIO with vGPU manager: will allow the use of NVIDIA virtual GPUs in virtualization environments.

Finally, it is important to clarify that Nova eIn its current state, it is not a functional controller and that the patches sent They are only the basis for starting the development of the controller, that is, it is the code that will lay the foundation for future development.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.