A este parche de Linux le basta una sola línea de código para multiplicar 39 veces su rendimiento

Pero, ahora que la eficiencia tecnológica es crítica, una mejora de sólo el 2,6% (como hace un segundo parche, del mismísimo creador de Linux) puede traducirse en millones en ahorro de recursos

Recientemente, Linux ha incorporado dos pequeños parches (uno con una extensión de tan sólo una línea, el otro de tan sólo 20 líneas más) que han demostrado tener un impacto insospechablemente mayúsculo en el rendimiento del kernel del sistema operativo libre por excelencia.

Un vistazo a…
La carrera de programador en 2017 y en el futuro (con Javier Santana)

El parche 'mmap'

El bot de pruebas automatizadas del kernel de Linux, mantenido por Intel, Intel ha sido capaz de identificar una mejora de rendimiento del 3888,9% (casi del cuatro mil por ciento, sí) en el kernel de Linux... causada por una única línea de código.

Concretamente, una línea de un parche (llamado 'mmap') que reajusta la forma en que se alinean ciertos bloques de memoria llamados THP (pedazos grandes de memoria diseñados para mejorar el rendimiento al reducir la sobrecarga de gestión).

Básicamente, el kernel hacía que las asignaciones de memoria más grandes siguieran una regla estricta para alinearse de una manera específica. Esto, aunque tenía buenas intenciones, estaba causando problemas en algunos programas que no funcionaban bien con esa regla, lo que resultaba en ralentizaciones significativas.

¿Qué soluciona este parche?

Tras un cambio en el kernel realizado hace más de un año, el benchmark 'cactusBSSN' empezó a funcionar mucho más lento, (hasta un 600% en algunos PCs). Esto pasó porque este programa utiliza memoria en tamaños "inusuales" (como 4632 kB).

Antes del cambio, estos tamaños se podían juntar en bloques grandes, que el sistema podía manejar fácilmente. Pero después del cambio, estos bloques se dividían en piezas más pequeñas, dejando "espacios vacíos" entre ellos.

Esto causó que el sistema tuviera más problemas para encontrar y usar la memoria eficientemente. El mismo problema terminó afectando a Darktable, un popular programa de edición de fotos.

Un parche by Linus Torvalds

Linus Torvalds, creador del kernel de Linux, ha vuelto a demostrar por qué sigue liderando su desarrollo (y por qué es considerado uno de los más grandes expertos de su campo): con uno de sus últimos parches al código del kernel, de tan sólo 21 líneas de código, Torvalds ha logrado un aumento del 2,6% en el rendimiento multihilo del kernel de Linux.

Este parche lleva integrado en la versión estable del kernel de Linux desde la versión 6.12, lanzada hace menos de un mes.

Suprimiendo una medida de seguridad eficaz (pero no eficiente)

La modificación se centra en la función 'copy_from_user()' del kernel de Linux, y una de sus novedades radica en la supresión del uso de 'barrier_nospec()', una medida de seguridad introducida en su momento para mitigar las vulnerabilidades conocidas como Meltdown y Spectre.

Descubiertas en 2018, estas vulnerabilidades explotaban la ejecución especulativa, un mecanismo de los procesadores modernos diseñado para predecir y cargar instrucciones antes de ser necesarias, optimizando así el rendimiento.

El problema es que la implementación de la citada medida de seguridad, aunque bastante efectiva, ha demostrado ser extremadamente lenta, afectando notablemente el rendimiento en sistemas multihilo y aplicaciones de alta frecuencia de llamadas, como servidores proxy y bases de datos.

La solución de Torvalds: eficiencia en la simplicidad

Este dilema ha sido una constante en la evolución del kernel de Linux: proteger los sistemas sin sacrificar rendimiento. Torvalds, conocido por su oposición a medidas que impacten desproporcionadamente la velocidad, ha logrado una solución que mitiga ambos problemas.

Así, fiel a su filosofía de equilibrio entre seguridad y rendimiento, introdujo una optimización basada en el uso de enmascaramiento de punteros: asignar una dirección de todos unos ('111...111') en situaciones donde la dirección proporcionada por el usuario sea inválida.

Este cambio no sólo mantiene la seguridad necesaria, sino que también elimina operaciones redundantes, mejorando la eficiencia del sistema.

El impacto de esta solución fue confirmado por pruebas automatizadas realizadas en entornos multihilo, mostrando un aumento del 2,6% en el rendimiento. Aunque pueda parecer un avance modesto, su efecto se amplifica cuando se considera la escala global de uso de Linux, desde servidores y servicios en la nube hasta dispositivos locales.

Vía | Phoronix & The Register

Imagen | Marcos Merino mediante IA

En Genbeta | Un aficionado a Linux va un paso más allá y logra que un procesador de 1971 pueda ejecutar este sistema operativo creado en 1991

Ver todos los comentarios en https://www.genbeta.com

VER 5 Comentarios

Portada de Genbeta