È iniziato il processo di integrazione del driver Nova per GPU NVIDIA nel kernel Linux

Gli ingegneri di Red Hat hanno proposto di includere nel kernel Linux il primo set di patch per l'implementazione del driver Nova. Questo driver è progettato per essere utilizzato con GPU NVIDIA dotate di firmware GSP, in uso a partire dalla serie NVIDIA GeForce RTX 2000 basata sull'architettura micro Turing. In queste GPU, le operazioni di inizializzazione e gestione sono implementate nel firmware e vengono eseguite da un microcontrollore GSP (GPU System Processor) separato. Si prevede che a lungo termine Nova sostituirà il driver Nouveau per le GPU con supporto GSP.

Il nuovo driver è scritto in linguaggio Rust e, dato che l'infrastruttura per lo sviluppo di driver in Rust è ancora in fase di sviluppo, il codice di Nova sarà trasferito progressivamente nel kernel principale, man mano che si renderanno disponibili i necessari binding per il linguaggio Rust. Nella prima fase è proposto per l'integrazione nel kernel il driver "nova-core", composto da 232 righe di codice. Nova-core implementa un livello base di astrazioni sopra le API del firmware GSP e fornisce un'API indipendente dalle versioni del firmware.

Nella fase successiva, si prevede di includere nel kernel il driver DRM nova-drm (Direct Rendering Manager) per interagire con le GPU dallo spazio utente, oltre a un driver VFIO con gestione vGPU, che consente di utilizzare GPU NVIDIA virtuali nei sistemi di virtualizzazione.

La principale motivazione per la promozione del nuovo driver Nova è la possibilità di eliminare le complicazioni associate al driver Nouveau e di raggiungere una semplificazione significativa, grazie all'uso di gestori predefiniti forniti dal firmware GSP, eliminando il carico del supporto per vecchie GPU. Nova aiuterà anche a risolvere problemi architettonici nel Nouveau, che richiedono una significativa ristrutturazione della base di codice, ad esempio, problemi di locking nel codice VMM/MMU. Il linguaggio Rust è stato scelto per ridurre la probabilità di errori nella gestione della memoria, oltre a consentire di combinare il lavoro su un driver funzionante con la creazione di binding e astrazioni per lo sviluppo di driver in Rust.

Guarda il video

Per quanto riguarda i progressi nell'aggiunta al kernel Linux delle funzionalità per lo sviluppo di driver in Rust, nella versione 6.14 sono state integrate le interfacce Rust per PCI, piattaforme, Open Firmware, dispositivi a carattere e alcune funzioni di input/output. Greg Kroah-Hartman, responsabile del supporto per la versione stabile del kernel Linux, ha descritto lo stato attuale nel pull request con l'aggiornamento dei driver per il kernel 6.14 come "quasi pronto per la scrittura di un driver reale in Rust".

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster