BookinglyTech News
Software

Igalia retoma los nuevos syscalls FUTEX para los juegos x86 sobre ARM64

La consultora publica una ronda actualizada de parches para get_robust_list2 y set_robust_list2, pensados para que emular juegos x86 sobre ARM64 no salga caro

2 min de lecturaPhoronix0 vistas

El kernel de Linux vuelve a tener encima de la mesa un par de llamadas al sistema nuevas para que emular juegos x86 sobre ARM64 no sea un lastre. Igalia ha publicado una ronda actualizada de parches para los syscalls get_robust_list2 y set_robust_list2, continuacion de un trabajo que la consultora arrastra desde el ano pasado y que en los ultimos meses ha ido pasando por otras partes del kernel.

El objetivo es doble: mejorar el soporte de Steam Play sobre ARM64 y que FEX, el emulador que traduce binarios x86 y x86_64 a instrucciones ARM64, se comporte de forma eficiente con juegos de ese catalogo. FEX es la pieza que se usa para mover software x86 sobre ARM, y ahi entra en escena Steam Frame.

Por que unas futex importan tanto

Las futex son primitivas de sincronizacion del kernel: la base sobre la que se montan los mutex, los semaforos y buena parte de lo demas. Las robust list son el mecanismo que permite al kernel limpiar una futex cuando el hilo que la tenia tomada muere sin soltarla, algo que en una capa de traduccion binaria ocurre constantemente y que, resuelto mal, se paga en latencia y en ciclos de CPU. Que aparezcan variantes get_robust_list2 y set_robust_list2 apunta a que la interfaz actual se queda corta para lo que necesita un emulador.

En esta ronda no hay cifras de rendimiento, ni fechas, ni un compromiso de que el trabajo acabe en mainline. Es el tipo de parche que se revisa durante semanas en la lista de correo y que puede cambiar varias veces antes de fusionarse, o no fusionarse.

A quien administre flotas ARM o siga de cerca el gaming en Linux le interesa por una razon sencilla: cuanto mejor resuelva el kernel estas primitivas, menos tiene que hacer el emulador por su cuenta y mas juegos se ejecutan sin que la traduccion de x86 a ARM64 se note. Nadie compra una maquina por un syscall, pero sin ellos la maquina no hace lo que se espera de ella.