Die Entwicklung des Nova-Treibers fĂŒr NVIDIA-GPUs in den Linux-Kernel hat begonnen

Ingenieure von Red Hat haben den ersten Satz von Patches zur Integration des Nova-Treibers in den Linux-Kernel vorgeschlagen. Der Treiber ist fĂŒr den Einsatz mit NVIDIA-GPUs ausgelegt, die mit GSP-Firmware ausgestattet sind und seit der NVIDIA GeForce RTX 2000-Serie auf der Turing-Mikroarchitektur verwendet werden. In solchen GPUs sind die Initialisierungs- und Verwaltungsoperationen in der Firmware implementiert und werden von einem separaten GSP (GPU System Processor) Mikrocontroller ausgefĂŒhrt. Es wird erwartet, dass Nova langfristig den Nouveau-Treiber fĂŒr GPUs mit GSP-UnterstĂŒtzung ersetzen wird.

Der neue Treiber ist in Rust geschrieben, und da die Infrastruktur zur Entwicklung von Rust-Treibern sich noch in der Entwicklung befindet, beabsichtigt man, den Nova-Code schrittweise in den Hauptkernel zu integrieren, wĂ€hrend die notwendigen Bindungen fĂŒr die Programmiersprache Rust verfĂŒgbar werden. In der ersten Phase wird der Treiber „nova-core“ mit 232 Zeilen Code zur Integration in den Kernel vorgeschlagen. Nova-core implementiert eine grundlegende Abstraktionsschicht ĂŒber die Software-Schnittstellen der GSP-Firmware und bietet eine API, die unabhĂ€ngig von den Firmware-Versionen ist.

In der nÀchsten Phase plant man, den DRM-Treiber nova-drm (Direct Rendering Manager) in den Kernel aufzunehmen, um mit GPUs aus dem Benutzerspeicher zu interagieren, sowie einen VFIO-Treiber mit einem vGPU-Manager, der die Verwendung virtueller NVIDIA-GPUs in Virtualisierungssystemen ermöglicht.

Der Hauptgrund fĂŒr die Förderung des neuen Nova-Treibers ist die Möglichkeit, die KomplexitĂ€ten des Nouveau-Treibers zu beseitigen und durch die Nutzung vorhandener Handler, die von der GSP-Firmware bereitgestellt werden, erhebliche Vereinfachungen zu erreichen. Nova wird auch architektonische Probleme lösen, die im Nouveau eine wesentliche Überarbeitung des Codes erfordern, wie beispielsweise Probleme mit Sperren im VMM/MMU-Code. Die Programmiersprache Rust wurde gewĂ€hlt, um die Wahrscheinlichkeit von Fehlern bei der Arbeit mit Speicher zu verringern und um die Entwicklung eines funktionierenden Treibers mit der Erstellung von Bindungen und Abstraktionen fĂŒr die Treiberentwicklung in Rust zu kombinieren.

Video abspielen

Was den Fortschritt bei der Integration von Funktionen zur Entwicklung von Treibern in den Linux-Kernel in der Programmiersprache Rust betrifft, wurden in die Version 6.14 Rust-Bindings fĂŒr PCI, Plattformen, Open Firmware, zeichengestĂŒtzte GerĂ€te und einige Ein-/Ausgabefunktionen aufgenommen. Greg Kroah-Hartman, der fĂŒr die UnterstĂŒtzung der stabilen Kernel-Version verantwortlich ist, beschrieb im Pull-Request mit der Aktualisierung der Treiber fĂŒr den Kernel 6.14 den aktuellen Stand als „fast bereit fĂŒr das Schreiben eines echten Treibers in Rust“.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster