Leemos en Phoronix que la gente de Collabora y Valve ya tienen listo su trabajo sobre futex2, que iniciaron el año pasado, y ahora ya han abierto el periodo de discusiones sobre esta nueva implementación.

¿Y qué es futex2 y por qué nos alegramos de que pueda acabar siendo incorporado a Linux? Futex es el acrónimo inglés de "fast userspace mutex", que en castellano vendría a poder traducirse como "mecanismo rápido de bloqueo en el espacio de memoria de usuario" (que nadie se enfade por haber traducido y explicado a la vez cada término). Este mecanismo de bloqueo permite a un hilo que se ejecuta en el espacio de memoria del usuario solicitar al kernel un acceso exclusivo sobre alguna dirección de memoria (ejemplo chorra, puntos de vida del personaje principal), de cara a que ningún otro hilo en ejecución quiera escribir a la vez cuantos puntos de vida gana o pierde el personaje (imaginemos que a la vez que nos da una bala, tocamos un corazón que regenera vida, ambos eventos intentarían modificar los puntos de vida a la vez, y eso está prohibido, no se puede modificar a la vez una misma dirección de memoria o un mismo dato, leer sí, se puede leer a la vez las veces que se quiera). Para evitar la escritura concurrente, lo que hacen los hilos o los procesos es pedir permiso, y a través de futex crean un marcador por el que preguntan. Si está libre, lo bloquean, hacen sus cambios en las variables que interesan (los puntos de vida) y lo liberan. Si está bloqueado, esperan a que se libere.

Ahora ya me dejo de rollos, y vamos a qué es futex2, en condiciones. Linux ya tiene la operación futex, pero el problema es que solamente sirve para esperar a un único objeto. En Windows (si estamos hablando de Collabora y Valve, se veía venir, ¿no?) existe la opción de esperar a múltiples objetos a la vez, con lo que Wine tuvo que usar algún mecanismo para dar soporte a esta API a la hora de traducir las llamadas. Hasta la fecha Wine ha venido usando ESYNC/eventfd. La función eventfd permite hacer lo mismo que lo que se quiere hacer con futex2, pero puede acabar generando cuellos de botella, con lo que para mejorar el rendimiento, la gente de Collabora ha propuesto añadir a la función futex que provee el kernel, una opción para que se puedan esperar a varios objetos a la vez, con lo que la CPU se vería liberada al usar el mecanismo apropiado.

Según comentan ellos mismos, con esta implementación son capaces de mejorar un 1.5% en Shadow Of The Tomb Raider y un 4% en Beat Saber.

Podéis ver el RFC aquí con una explicación bastante mejor.

Info
serjor
Author: serjor
Sobre mi
Un juego perfecto? Cualquiera con gatos. Linuxero desde hace ya demasiado y jugador de toda la vida

Log in to comment

Síguenos

Paypal

Cualquier aportación nos ayudará a seguir ofreciéndote la mejor información sobre juegos en Linux y mantener la web libre de publicidad. ¡Gracias!

Últimos Análisis

3

Análisis this is the police

4

Análisis: Life is Strange 2

Últimos comentarios

    • Avatar de leillo1975
    • 7 Days To Die en Linux, la opinión de un lector
    • A mi la verdad es que me habeis metido el gusanillo, pero por ejemplo de zombies tengo sin acabar el Dying Light , que a pesar de ser muy bueno no puedo con el mal rollo que me da en ciertos momentos (aunque nada comparable al Alien Isolation). El problema principal es el de siempre, la falta de tiempo, y este tipo de juegos requieren mucho
    • 17 Mar 2021 16:34
    • Avatar de laegnur
    • 7 Days To Die en Linux, la opinión de un lector
    • Buenas. Me alegro que te haya gustado. Yo descubrí este juego hará un par de años, siguiendo a Buck Fernandez en Youtube. Él lleva jugandolo desde el lanzamiento, y casi a cada Alpha, lanza una serie de videos en la que explora el juego a fondo. Es un buen recurso para saber como funciona el juego. Luego como mencionas, lamentablemente, a día de hoy, con el Alpha 19 en curso, y el Alpha 20 a punto de salir del horno, el juego carece de trasfondo, los desarrolladores se siguen centrando en mejorar los sistemas del juego, o los modelados, por lo que el juego, al medida que pasen las horas, cuando se alcanza el "endgame", cuando ya tienes a tu personaje desarrollado, ya hiciste las misiones de los comerciantes, lo único que queda es prepararte para la siguiente luna de sangre o horda, por lo que puede llegar a volverse aburrido en ese momento. Por suerte ej juego tiene soporte de mods, y hay mods muy buenos que cambian el juego considerablemente, añadiéndole mucho contenido y horas de juego.
    • 17 Mar 2021 11:53
    • Avatar de Mertellx
    • Steam Play se actualiza con Proton 5.13-1
    • Proton 5.13-6 Aquí están las mejoras y correcciones que se pueden encontrar: Anteriormente en Experimental: se corrigieron los problemas de sonido mundial de Cyberpunk 2077. Anteriormente en Experimental: compatibilidad mejorada con el controlador y conexión en caliente en Yakuza Like a Dragon, Subnautica, DOOM (2016) y Virginia Nioh 2 ahora se puede jugar. Se corrigió la pantalla negra en la pérdida de enfoque en DOOM Eternal en AMD. Soporte de RV restaurado en No Man's Sky. El chat de voz en Deep Rock Galactic ahora es funcional. Mejor soporte para los controladores de PlayStation 5. Sound in Dark Sector está funcionando ahora. Se corrigió Need for Speed ​​(2015) colgado en AMD. Más correcciones para que la entrada del juego esté activa mientras la superposición de Steam está activa.
    • 13 Feb 2021 11:54

Últimos vídeos de Jugando en Linux

Ofertas Patrocinadas de Humble Bundle

humblechoice102020 tabletopbumdle nisbundle

 Ayúdanos a mantener jugandoenlinux.com sin publicidad