ADV HEADER

 

ADSENSE

 

Questo post é stato letto 50 volte!

Linux gaming su vecchi pc: lo scheduler migliora l’esperienza di gioco

Peter Zijlstra sta lavorando a nuove patch dello scheduler Linux che promettono di rivoluzionare il mondo del Linux gaming su vecchi pc.

Queste ottimizzazioni sono volte a migliorare significativamente il frame time e la fluidità di gioco, anche su hardware considerato datato, come i processori Sandy Bridge e le schede grafiche RX 580.

La ricerca si concentra su come il kernel gestisce i processi, un aspetto cruciale per le prestazioni, specialmente in contesti interattivi come il gaming.

Il contesto dell’ottimizzazione: hardware datato e schedulazione dei processi

L’esperimento di Zijlstra parte da una configurazione hardware apparentemente modesta: un Intel Core i7-2600K del 2011 e una Radeon RX 580.

Su questa macchina, definita ironicamente “potato”, è stato eseguito un gioco Windows tramite Proton su Linux.

Il fulcro del lavoro è la gestione della schedulazione dei processi all’interno dei cgroup di Linux, un meccanismo che distribuisce risorse come CPU, memoria e I/O tra diversi gruppi di processi.

Questo include container, sandbox, desktop environment, servizi systemd e persino sessioni di gaming sotto Steam.

Negli anni, la complessità dello scheduler Linux è aumentata notevolmente a causa della crescente disponibilità di core e thread nelle CPU moderne.

Zijlstra ha notato che l’algoritmo attuale può distribuire il carico dei task in modo inefficiente tra i core, con conseguenze negative, soprattutto per applicazioni interattive come i videogiochi.

L’impatto della CPU sul gaming e la soluzione proposta

Perché il gaming soffre con la CPU sotto pressione

Nel gaming, non contano solo gli fps elevati, ma anche la regolarità del frame pacing, ovvero il tempo impiegato per generare ogni fotogramma.

Se il kernel ripartisce in modo non ottimale il tempo di elaborazione della CPU tra i vari processi, si possono verificare scatti nelle animazioni, blocchi improvvisi e tempi di rendering irregolari, compromettendo l’esperienza di gioco.

Per testare questo scenario, Zijlstra ha eseguito il gioco “Shadows: Awakening” tramite Lutris, utilizzando GE-Proton10-34 e Steam Runtime 3 “sniper”.

Contemporaneamente, ha avviato 8 processi “spin.sh” con priorità ridotta, uno per ogni thread della CPU Sandy Bridge.

Questi script sono progettati per mantenere la CPU costantemente occupata, simulando una condizione di stress simile a quella che si può riscontrare su desktop moderni con molte applicazioni aperte.

Il risultato iniziale è stato un’esperienza di gioco quasi inutilizzabile.

La modifica alle time slice dello scheduler linux

La svolta è arrivata quando Zijlstra ha ridotto drasticamente la dimensione della time slice assegnata dallo scheduler, portandola a un decimo del valore base.

L’intento era verificare se una distribuzione più aggressiva del tempo CPU potesse migliorare la reattività generale del sistema.

I dati raccolti con MangoHUD hanno mostrato miglioramenti significativi: gli fps minimi sono passati da 3,8 a 20,6; il frame time massimo è sceso da 107,4 ms a 37,2 ms; e il frame time medio è passato da 34,5 ms a 19,5 ms.

Sebbene gli fps medi siano un indicatore, il vero successo risiede nella maggiore stabilità dell’esperienza di gioco.

Un frame time superiore a 100 ms causa micro-blocchi percepibili, e la riduzione di questi picchi trasforma completamente il gameplay.

Le patch non sono ancora definitive, ma fanno parte di un lavoro che promette di migliorare il kernel Linux.

L’importanza dell’hardware datato nelle ottimizzazioni

Perché l’hardware vecchio evidenzia le differenze

Le CPU Sandy Bridge, come il Core i7-2600K, si comportano diversamente dai processori più recenti.

Mancano di molte ottimizzazioni moderne, tra cui scheduler hardware più avanzati, cache più grandi, gestione energetica sofisticata e latenze ridotte.

Il 2600K, con 4 core fisici e Hyper-Threading per un totale di 8 thread logici, in scenari di saturazione, evidenzia in modo più netto le inefficienze dello scheduler a causa dell’aggressiva competizione tra i thread.

L’hardware più datato rende visibili limiti del kernel che su CPU contemporanee, con maggiore potenza bruta, restano spesso nascosti.

La Radeon RX 580, con il suo valido supporto da driver open source come AMDGPU e RADV, dimostra che il vero collo di bottiglia in questo contesto non è la grafica, ma la gestione della CPU.

Il lavoro di Zijlstra sottolinea come molte ottimizzazioni recenti del kernel siano state sviluppate per server e datacenter multi-core, mentre i carichi desktop interattivi, come il gaming, richiedono approcci diversi.

Questo post é stato letto 50 volte!

ADV FOOTER