Un nuovo driver migliora le prestazioni su Linux
Redattore per Q-Gin. Clicca su '// TUTTI_GLI_ARTICOLI' per esplorare le altre pubblicazioni scritte da // Luca_Pio.
Un nuovo driver migliora le prestazioni su Linux
Zeb Figura di CodeWeavers, ha // proposto un primitivo driver di sincronizzazione del kernel NT, così da migliorare le prestazioni dei giochi progettati per Windows su GNU/Linux. Come si legge nel RFC (request for comments) pubblicato sulla mailing list del kernel Linux, Figura afferma che “questa serie di patch introduce un nuovo char misc driver, /dev/ntsync, che viene utilizzato per implementare una primitiva sincronizzazione con Windows NT”. Lo sviluppatore ha poi aggiunto:
Il progetto Wine emula le API di Windows nello user space. Una parte particolare di queste API, ovvero le primitive sincronizzazioni di NT, sono state storicamente implementate con RPC tramite un processo ‘kernel’ dedicato. Tuttavia, le applicazioni più recenti utilizzano queste API in modo più intenso e l’overhead di RPC è diventato un collo di bottiglia.
Le API di sincronizzazione del kernel NT sono troppo complesse per essere implementate sopra a quelle primitive già esistenti e senza sacrificare la precisione. Alcune operazioni, come NtPulseEvent() o la modalità ‘wait-for-all’ di NtWaitForMultipleObjects(), richiedono un controllo diretto sulla coda di attessa sottostante e non è possibile implementarne una sufficientemente robusta per Wine in un user space. Quindi il driver che propongo implementa le interfacce problematiche direttamente nel kernel Linux.
Zeb Figura
Va bene, ma che tipo di prestazioni potremmo avere con una cosa del genere? Ovviamente, la differenza dipende dalla macchina e da ciò che vogliamo eseguire, ma fortunatamente abbiamo alcuni esempi provenienti da diversi utenti:
| Gioco | Upstream | ntsync | Miglioramento |
|---|---|---|---|
| Anger Foot | 69 | 99 | 43% |
| Call of Juarez | 99.8 | 224.1 | 125% |
| Dirt 3 | 110.6 | 860.7 | 678% |
| Forza Horizon 5 | 108 | 160 | 48% |
| Lara Croft e il Tempio di Osiride | 141 | 326 | 131% |
| Metro 2033 | 164.4 | 199.2 | 21% |
| Resident Evil 2 | 26 | 77 | 196% |
| The Crew | 26 | 51 | 96% |
| Tiny Tina’s Worderlands | 130 | 360 | 177% |
| Total War Saga: Troy | 109 | 146 | 34% |
Si tratta di numero impressionati, ma ancora una volta dipende dalla macchina, ma ammettiamo che qualsiasi aumento delle prestazioni è ben accetto, perciò speriamo che questa serie di patch riceva commenti positivi, almeno dopo le eventuali modifiche. Comunque, sembra che in futuro potremmo assistere a bel miglioramento per quanto riguarda i giochi non-nativi Linux.