Ahora que el shock inicial sobre las vulnerabilidades de chip Spectre y Meltdown se ha calmado, la atención se centra en solucionar los problemas. Como ya se señaló, muchas veces en el pasado, el mundo de la informática está preocupado. Sobre todo debido al impacto de rendimiento que pueden traer los parches y soluciones para los errores.
Intel ha estado ansioso por minimizar cualquier sugerencia de desaceleración importante en sus dispositivos. Sin embargo, el rendimiento exacto afectado variará de un sistema a otro, según las tareas que se realicen.
Brendan Gregg es un ingeniero de Netflix cuyo trabajo involucra el rendimiento de la computación en nube a gran escala. Gregg ha llevado a cabo algunas pruebas sobre los parches de impacto en los sistemas Linux. Su conclusión es que "los parches de Meltdown presentan las regresiones de rendimiento de kernel más grandes que he visto".
Gregg ha creado un "microbenchmark simple", del cual ha proporcionado el código fuente. El mismo fue utilizado por el ingeniero para probar cinco factores que él cree que son clave. Se centra específicamente en los parches de aislamiento de la tabla de páginas del kernel de Linux (KPTI). Pero señala que también hay que considerar otras tres capas de sobrecarga:
- Actualizaciones de microcódigo Intel.
- Cambios en el hipervisor del proveedor de la nube
- Cambios en el compilador retpoline.
Factores que intervienen en gastos de KPTI
Brendan Gregg resume cinco factores clave que intervienen en los gastos generales de KPTI:
- Tasa de llamadas telefónicas: hay gastos generales relativos a la tasa de llamadas de sistema, aunque se necesitan altas tasas para sea notorio. A 50k syscalls/seg por CPU, la sobrecarga puede ser del dos por ciento, y sube a medida que aumenta la tasa syscall. En Netflix, las altas tasas son inusuales en la nube, con algunas excepciones (bases de datos).
- Conmutadores de contexto: estos agregan gastos generales similares a la tasa de llamadas de sistema. Gregg cree que la tasa de cambio de contexto simplemente se puede agregar a la tasa de llamadas de sistema para las siguientes estimaciones.
- Tasa de fallas de página: agrega un poco más de sobrecarga también, para altas tasas.
- Tamaño del conjunto de trabajo: más de 10 Mbytes costarán gastos adicionales debido a la descarga de TLB. Esto puede convertir una sobrecarga de 1 por ciento (ciclos de syscall solo) en un siete por ciento de gastos generales. Esta sobrecarga puede ser reducida por a) pcid, disponible en Linux 4.14, y b) En páginas enormes.
- Patrón de acceso a la caché: los gastos generales se ven agravados por ciertos patrones de acceso que cambian de almacenamiento en caché a almacenamiento en caché un poco menos. En el peor de los casos, esto puede agregar una sobrecarga adicional del 10 por ciento. Llevando (por ejemplo) el porcentaje de sobrecarga al 17 por ciento.
Consecuencias de los parches anti Meltdown en Linux
Los hallazgos de Brendan sugieren que los sistemas Linux pueden esperar una desaceleración de entre 0.1 y 6 por ciento. Para tareas a pequeña escala, esto será bastante insignificante, pero no se puede decir lo mismo de tareas más grandes o sistemas Linux a gran escala.
Sin embargo, no todas son malas noticias después de este análisis. Intel ha insistido en que debería ser posible mitigar cualquier golpe de rendimiento, y Gregg tiende a estar de acuerdo. "Estoy esperando que bajemos a menos del 2 por ciento con la afinación", agrega el ingeniero de Netflix. Para leer en detalle los hallazgos de Gregg, puedes acceder a su publicación de blog.