Mesa 23.1 abilita il supporto RadeonSI Rusticl mentre per Mesa 23.2 del prossimo trimestre, che ha appena iniziato lo sviluppo, c’è già un grosso biglietto per Rusticl: il supporto per la memoria virtuale condivisa (SVM).
La memoria virtuale condivisa aggiunta in OpenCL 2.0 consente all’host e al dispositivo GPU di condividere facilmente puntatori e altre strutture di dati basate su puntatori. Lo spazio di indirizzi virtuali condivisi di SVM stabilisce inoltre i requisiti relativi all’accesso coerente, alla sincronizzazione e ad altre funzionalità che aprono OpenCL per più casi d’uso.
Lo sviluppatore di Rusticl Karol Herbst di Red Hat ha mantenuto una richiesta di unione Mesa per quattro mesi per fornire un supporto SVM di sistema a grana fine mentre quel codice è stato unito durante la notte nel ciclo di sviluppo Mesa 23.2 appena avviato.
Karol ha notato che funziona per lo più bene con il driver Nouveau Gallium3D oltre a colpire i bug del driver. Il supporto SVM in Rusticl riduce anche una funzionalità in meno che era attualmente un vantaggio del vecchio ma non mantenuto Gallium3D Clover state tracker.
Karol ha ulteriormente spiegato nel commit abilitare SVM per Rusticl:
Al momento è tutto o niente. Un driver che supporta SVM di sistema a grana fine può abilitarlo per ottenere il supporto SVM completo.
I livelli inferiori potrebbero essere emulati da userptrs e posizionare il bo nelle stesse posizioni anche nella VM della GPU, ma ciò richiederebbe un bel po’di rielaborazione da parte dei driver.
Per ora supportare mmu_notifiers sul lato kernel è l’unico modo per ottenere il supporto SVM con Rusticl.
L’unico driver con i bit di gallio cablati su bancomat è Nouveau, ma sospetto che non dovrebbe essere troppo difficile anche per iris e radeonsi.
Vedi questa richiesta di unione se interessati a maggiori dettagli su queste mille righe di nuovo codice.