Linux: in fase di test deadline scheduling per driver grafici DRM

Nuove patch sperimentano deadline scheduling per migliorare l'efficienza e l'equità nei driver grafici del kernel Linux DRM.
Linux: in fase di test deadline scheduling per driver grafici DRM

Tvrtko Ursulin, della free software consultancy Igalia, ha recentemente inviato una serie di patch come “richiesta di commenti” per lavorare su una policy di pianificazione a scadenza (deadline scheduling) per il DRM scheduler, utilizzato nei diversi driver grafici del kernel Linux basati su Direct Rendering Manager. Il “DRM sched” è un gestore comune nato inizialmente dal codice del pianificatore AMDGPU. Tuttavia, ora è utilizzato anche da Intel e altri driver grafici del kernel.

Dopo discussioni e feedback da parte di altri sviluppatori di driver DRM Linux, Ursulin sta esplorando la possibilità di introdurre una politica di pianificazione a scadenza per il DRM scheduler, valutando anche se potrebbe sostituire il modello attuale basato sul First In First Out (FIFO). Come riportato da Ursulin: “sostituire FIFO con un tipo di pianificazione basata sulle scadenze e rimuovere il round-robin. Collegare lo scheduler con le scadenze DMA-Fence. Una prima bozza e i test con diversi driver e feedback sarebbero carini. Sono riuscito a testarlo solo con amdgpu. Altri driver potrebbero anche non compilare“.

Linux: i vantaggi della deadline scheduling policy

La politica di scadenza per lo scheduler DRM Linux è spiegata dettagliatamente nella patch della policy. Come si legge: “La deadline scheduling policy è una versione più equa del modello FIFO, con due vantaggi principali. Innanzitutto, può collegarsi naturalmente con le scadenze delle dma-fence. In secondo luogo, consente l’utilizzo di più code di esecuzione per ciascun scheduler. Il vantaggio in termini di equità deriva proprio da questo approccio. L’attuale politica FIFO tende a penalizzare le entità a bassa priorità, favorendo quelle a priorità più alta. La deadline scheduling traccia tutte le entità eseguibili in un’unica coda e assegna loro delle scadenze basate sulle priorità. I lavori vengono ordinati in base alle scadenze anziché alle priorità. Ciò consente, ad esempio, a una richiesta di alta priorità di superare una precedente a priorità inferiore. Tuttavia, garantisce comunque che, anche i lavori a bassa priorità vengano eseguiti, evitando che vengano continuamente ignorati“.

In precedenza, si è già discusso di una deadline scheduling policy per la pianificazione DRM dei driver grafici Linux. Tuttavia, sorgono alcuni dubbi sulla qualità di questa implementazione e sulla sua utilità. Come dichiara ancora Ursulin: “Quindi ho giocato un po’ con il codice dello scheduler e ho trovato qualcosa che almeno sembra non bloccarsi. Se ci siano o meno vantaggi significativi a parte forse il consolidamento e la riduzione del codice è la cosa principale da determinare“. Per maggiori dettagli è possibile consultare la serie di patch RFC pubblicata sulla pagina dedicata.

Ti consigliamo anche

Link copiato negli appunti