VRAM danneggiata? Intel studia un modo per salvare la memoria

Il driver Intel Xe per Linux introduce controlli sulla VRAM e può escludere definitivamente le pagine di memoria difettose.

Intel sta lavorando a un aggiornamento del driver grafico Xe per Linux che introduce una gestione più attenta dei problemi alla memoria video.

Le modifiche, destinate al ciclo di sviluppo di Linux 7.4, comprendono un controllo preliminare della VRAM e un meccanismo capace di escludere definitivamente le pagine fisiche riconosciute come difettose.

L’obiettivo è limitare gli effetti di anomalie che potrebbero provocare corruzione dei dati, arresti del dispositivo o altri problemi durante l’utilizzo della GPU. Il lavoro riguarda in particolare la gestione della memoria delle GPU Intel e rappresenta un’evoluzione interessante del driver sul fronte dell’affidabilità. Non si tratta di una riparazione dell’hardware: il software cerca invece di riconoscere le aree problematiche e impedire che siano utilizzate nuovamente.

Il driver controlla la VRAM durante l’avvio

La prima novità consiste in un controllo di integrità eseguito durante l’inizializzazione del driver. Xe utilizza l’ultima pagina della memoria video come canary, sottoponendola a verifiche pensate per individuare anomalie nella configurazione. Secondo l’ingegnere Intel Matthew Auld, quella posizione è particolarmente utile per intercettare problemi relativi al dimensionamento del BAR, della CCS e delle mappe di memoria.

La necessità del controllo è emersa anche da un problema osservato su alcune GPU Battlemage. Un offset CCS configurato in modo non corretto poteva portare una parte dello spazio destinato ai dati di compressione dentro l’area considerata disponibile dall’allocatore della VRAM. Il test iniziale serve quindi a scoprire una condizione errata prima che quella memoria venga utilizzata normalmente. Per il momento la funzione resta protetta dall’opzione di compilazione CONFIG_DRM_XE_DEBUG_MEM, quindi non è pensata per attivarsi nelle configurazioni di produzione.

Il secondo intervento riguarda invece un guasto effettivo della memoria. Dopo 21 revisioni del codice, Xe ha ottenuto il supporto al memory page offlining, che consente di rimuovere permanentemente una pagina fisica difettosa dal bacino destinato alle nuove allocazioni. Le aree escluse vengono inoltre rese visibili tramite DebugFS, offrendo agli strumenti in spazio utente la possibilità di conoscere quali porzioni della VRAM risultano compromesse.

La GPU può continuare a funzionare con meno memoria

Il principio è simile a quello utilizzato per isolare un settore danneggiato su un dispositivo di archiviazione. Quando il driver identifica una pagina inutilizzabile, evita che venga restituita alle successive richieste di memoria. In questo modo una singola area guasta non deve necessariamente compromettere l’intero spazio video disponibile e la GPU può continuare a operare utilizzando le porzioni sane. Il compromesso è evidente: la quantità di memoria effettivamente disponibile diminuisce in funzione delle pagine escluse.

La funzione va distinta dalla gestione della semplice pressione sulla VRAM. Un problema di capacità si verifica quando le applicazioni richiedono più memoria di quella disponibile; un guasto fisico riguarda invece l’affidabilità di una specifica area. Il nuovo meccanismo affronta quest’ultimo caso, intervenendo a livello del driver per impedire il riutilizzo della porzione compromessa.

Ti consigliamo anche

Link copiato negli appunti