Come previsto dopo averlo segnalato per la prima volta un mese fa, quando le patch FUTEX2 sono state messe in coda in blocco/core, questo lavoro con la nuova chiamata di sistema sys_futex_waitv() per aiutare l’esperienza di gioco di Windows su Linux arriverà davvero per Linux 5.16.
Il lavoro su FUTEX2 è passato molto tempo e l’atterraggio per Linux 5.16 è la parte principale: la chiamata di sistema sys_futex_waitv che consente l’attesa su più futex. Questo è molto utile per artisti come Wine e Proton (Steam Play) per abbinare meglio il comportamento della funzionalità WaitForMultipleObjects di Microsoft Windows. L’utilizzo di questa nuova chiamata di sistema su Linux 5.16+ quando le patch atterrano per Wine/Proton consentirà maggiori possibilità di prestazioni. I giochi nativi di Linux possono anche utilizzare questa chiamata di sistema direttamente o tramite un wrapper (ad esempio, le patch glibc sono state flottate) anche per vantaggi in termini di prestazioni/efficienza. Il vantaggio in termini di prestazioni può essere di qualche punto percentuale.
In origine FUTEX2 avrebbe anche incorporato futex di dimensioni variabili, consapevolezza NUMA e altri miglioramenti. Quel lavoro però è stato rimandato per ora solo alla fusione di sys_futex_waitv per i vantaggi di gioco di Linux e gli altri miglioramenti possono arrivare in seguito quando saranno pronti.
Questo nuovo codice è stato inviato oggi per questo primo giorno di la finestra di unione di Linux 5.16 poiché l’aggiunta principale degli aggiornamenti di blocco cambia questo ciclo. Linus dovrebbe ritirare il lotto iniziale di 5.16 PR nelle prossime ore.
Ci sono state patch Proton/Wine mentre ora che questa chiamata di sistema è in linea principale, si spera che le patch vengano upstream in breve tempo.