Fremme af Nova-driveren for NVIDIA GPU i Linux-kernen er begyndt.

Ingeniører fra Red Hat har foreslået at inkludere det første sæt patches med implementeringen af Nova-driveren i kernen af Linux. Driveren er designet til brug med NVIDIA GPU'er, der er udstyret med GSP-firmware, hvilket anvendes fra serien af NVIDIA GeForce RTX 2000 baseret på Turing-mikroarkitekturen. I sådanne GPU'er er initierings- og kontroloperationer implementeret i firmwaren og udføres af en separat mikrokontroller GSP (GPU System Processor). Det forventes, at Nova på lang sigt vil erstatte Nouveau-driveren for GPU'er med GSP-understøttelse.

Den nye driver er skrevet i Rust, og da infrastrukturen til udvikling af Rust-drivere stadig er under udvikling, er det planen at overføre Nova-koden til den primære del af kernen trinvis, som de nødvendige bindings til Rust-sproget bliver tilgængelige. I første fase er driveren "nova-core" foreslået til inkludering i kernen, som består af 232 linjer kode. Nova-core implementerer et grundlæggende niveau af abstraktioner over firmware GSP's programmeringsgrænseflader, og giver et API, der ikke er afhængigt af versionerne af firmwaren.

I den næste fase planlægges det at inkludere DRM-driveren nova-drm (Direct Rendering Manager) i kernen for at interagere med GPU fra brugerens rum, samt en VFIO-driver med vGPU-manager, der muliggør brugen af virtuelle NVIDIA GPU'er i virtualiseringssystemer.

Den primære årsag til fremskyndelsen af den nye Nova-driver er muligheden for at slippe af med de komplikationer, der er kendetegnende for Nouveau-driveren, og for at opnå en betydelig forenkling ved at udnytte de færdige behandlere, der leveres af GSP-firmwaren, samt at eliminere byrden med at støtte ældre GPU'er. Nova vil også løse arkitektoniske problemer, der i Nouveau kræver betydelig omarbejdning af kodebasen, som for eksempel problemet med låsninger i VMM/MMU-koden. Rust-sproget er valgt for at reducere risikoen for at lave fejl ved håndtering af hukommelse samt for at muliggøre samtidig arbejde på den funktionelle driver med oprettelsen af bindings og abstraktioner til udvikling af drivere i Rust.

Afspil video

Hvad angår fremdriften i at tilføje muligheder for driverudvikling med Rust til Linux-kernen, er Rust-bindings til PCI, platforme, Open Firmware, symboliske enheder og nogle input/output-funktioner blevet accepteret i version 6.14. Greg Kroah-Hartman, der er ansvarlig for vedligeholdelsen af den stabile Linux-kernel, karakteriserede den nuværende tilstand i en pull-anmodning om opdateringer af drivere til 6.14 som "næsten klar til at skrive en rigtig driver i Rust."

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster