Hace unos días , supimos que el kernel de Linux podría ser responsable de los problemas de rendimiento en los títulos que se transfieren a la plataforma de transmisión de juegos Google Stadia, como detalla el desarrollador Malte Skarupke en una publicación de blog.
Sin embargo, Phoronix informó el domingo que el creador de Linux, Linus Torvalds, investigó el asunto y dijo con su franqueza característica que el informe de Skarupke era “pura basura”.
En resumen, tenía que ver con la forma en que el planificador maneja los spinlocks, y que su uso causaba largos bloqueos en la programación, lo que en consecuencia causaba retrasos en la representación de los marcos. Los puestos más largos duraron más de 100ms en spinlocks, lo que es demasiado tiempo para colgar cuando los marcos deben mostrarse a 30 o 60 fps.
Skarupke señaló 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”, y decidió usar bloqueos de mutex en lugar de spinlocks para resolver el problema.
Los comentarios de Torvalds aparecieron en un hilo de correo electrónico y se leyeron como sigue.
” 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 el tiempo antes de liberar el bloqueo, y luego lo lee después de volver a adquirir el bloqueo, y afirma que la diferencia horaria es el momento en que no se mantuvo ningún bloqueo. Lo cual es simplemente inútil e inútil y completamente incorrecto. Eso es pura basura. ” .
La solución de Torvalds sugiere a los desarrolladores ” Use un candado donde le diga al sistema que está esperando el candado, y donde el hilo de desbloqueo le avisará cuando haya terminado, para que el programador pueda trabajar con usted, en lugar de (al azar ) trabajando 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 que la probabilidad de que sepa lo que está haciendo es básicamente nula ” .
Esto esencialmente significa que el descubrimiento de Skarupke de que los spinlocks no son ideales para usar en este escenario es, a todos los efectos, correcto. El problema es que los desarrolladores no deberían haber estado usando spinlocks en primer lugar, por lo que en lo que respecta a Linus Torvalds, no fue el culpable del programador de Linux, sino los enfoques de los desarrolladores para usarlo.
Por supuesto, tendremos que ver si esta nueva información realmente ayuda a los desarrolladores a resolver los problemas que han tenido con sus puertos Stadia.
Traducido del inglés de Tom’s Hardware ©