Linus Torvalds calificó la afirmación de un blogger de que Linux tiene la culpa de los problemas del puerto de Google Stadia como "basura pura".

En una publicación de blog, el desarrollador Malte Skarupke señaló con el dedo al programador de Linux como el culpable de los problemas al portar juegos a la plataforma de juegos en la nube de Google Stadia.

Cada retraso de milisegundos afecta la experiencia cuando se juega. Skarupke dio esta descripción general de por qué llegó a la conclusión de que el programador estaba causando el problema:

"Escuché a alguien en el trabajo quejándose de puestos misteriosos mientras transportaba Rage 2 a Stadia. Lo único que esos puestos misteriosos tenían en común era que todos estaban usando spinlocks. Tenía curiosidad acerca de eso porque resultó ser la persona que escribió el spinlock estábamos usando

El problema era que había un hilo que pasaba varios milisegundos tratando de adquirir un spinlock en un momento en que ningún otro hilo sostenía el spinlock. Permítanme repetir eso: el spinlock era gratuito, pero un hilo tardó varios milisegundos en adquirirlo.

En un videojuego, en el que tienes que obtener una imagen en la pantalla cada 16 ms o 33 ms (dependiendo de si estás corriendo a 60 Hz o 30 Hz), una pérdida de más de un milisegundo es terrible. Especialmente si literalmente está deteniendo todos los hilos ".

Después de meses de investigar el problema, Skarupke concluyó que "la mayoría de las implementaciones de mutex son realmente buenas, que la mayoría de las implementaciones de spinlock son bastante malas y que el programador de Linux está bien pero lejos de ser ideal". Skarupke decidió cambiar de un spinlock a un mutex.

Torvalds decidió investigar personalmente el reclamo de Skarupke y lo reprendió de manera característica.

En una discusión de la lista de correo que transmite sus hallazgos, Torvalds escribió:

"Toda la publicación parece estar equivocada y está midiendo algo completamente diferente de lo que el autor piensa y afirma que está midiendo".

En primer lugar, los spinlocks solo se pueden usar si realmente sabes que no estás programado mientras los usas … Básicamente lee la hora antes de liberar el bloqueo, y luego lo lee después de volver a adquirir el bloqueo, y afirma que es la hora la diferencia es el momento en que no se mantuvo el bloqueo. Lo cual es estúpido e inútil y completamente incorrecto.

Eso es pura basura ".

Para solucionar el problema resaltado por Skarupke, Torvalds sugiere que los desarrolladores "usen un bloqueo donde le diga al sistema que está esperando el bloqueo, y donde el hilo de desbloqueo le avisará cuando esté listo, para que el programador pueda en realidad trabaja con usted, en lugar de trabajar (al azar) en su contra … Repito: no use spinlocks en el espacio del usuario, a menos que realmente sepa lo que está haciendo. Y tenga en cuenta la probabilidad de que sepa lo que está haciendo. es básicamente nulo ".

En cierto modo, Skarupke tiene razón en sus descubrimientos de que los spinlocks están causando problemas con los puertos de Linux a Stadia … Pero, según Torvalds, solo porque no deberían usarse de esa manera.

¿Está interesado en escuchar a los líderes de la industria discutir temas como este y compartir sus casos de uso? Asistir a la ubicación conjunta Expo 5G, IoT Tech Expo, Expo Blockchain, Expo AI y Big Datay Cyber ​​Security & Cloud Expo Serie Mundial con próximos eventos en Silicon Valley, Londres y Amsterdam.

Historias relacionadas

Dejar respuesta

Please enter your comment!
Please enter your name here