Zgodnie z oczekiwaniami po pierwszym zgłoszeniu tego miesiąc temu, kiedy łatki FUTEX2 były ustawiane w kolejce do blokowania/rdzenia, ta praca z nowym wywołaniem systemowym sys_futex_waitv() pomagającym w grach w systemie Windows na Linuksie rzeczywiście wyląduje w Linuksie 5.16.
Praca nad FUTEX2 trwała od dawna, a główną częścią jest wylądowanie w Linuksie 5.16: wywołanie systemowe sys_futex_waitv, które pozwala na oczekiwanie na wiele futeksów. Jest to bardzo przydatne dla takich jak Wine i Proton (Steam Play), aby lepiej dopasować zachowanie funkcji WaitForMultipleObjects systemu Microsoft Windows. Wykorzystanie tego nowego wywołania systemowego w Linuksie 5.16+, gdy łatki wylądują dla Wine/Proton, pozwoli na większe możliwości wydajności. Natywne gry linuksowe mogą również korzystać z tego wywołania systemowego bezpośrednio lub za pośrednictwem wrappera (np. zostały udostępnione łatki glibc), a także w celu uzyskania korzyści związanych z wydajnością/wydajnością. Przewaga wydajności może wynosić kilka procent.
FUTEX2 pierwotnie miał również zawierać futexy o zmiennej wielkości, świadomość NUMA i inne ulepszenia. Jednak ta praca została na razie przesunięta do tyłu, po prostu łącząc sys_futex_waitv dla korzyści płynących z gier na Linuksie, a inne ulepszenia mogą pojawić się później, gdy będą gotowe.
Ten nowy kod został wysłany dzisiaj na pierwszy dzień okno scalania Linux 5.16 jako główny dodatek aktualizacji blokujących zmienia ten cykl. Linus powinien w najbliższych godzinach zebrać początkową partię 5,16 PR.
Wykryto poza drzewem łatki Proton/Wine teraz, gdy to wywołanie systemowe jest w fazie głównej, łatki, miejmy nadzieję, zostaną udostępnione w krótkim czasie.