Actualización 12/enero/2018: Me habría gustado repetir los tests habiendo aplicado los parches de microcódigo oficiales de Intel para Spectre. Sin embargo, éstos sólo se aplican en micros de Haswell en adelante (ver tabla en gris oscuro), así que mi Core 2 Duo se queda, por el momento, sin ellos 😩. Si alguien con Linux tiene alguno de estos micros, sería de agradecer que realizara los tests con y sin parche (añadiendo el parámetro dis_ucode_ldr en el arranque del kernel, se bloquea el parche; ojo, esto no funciona si se ha actualizado vía BIOS).
Ya tengo un PC "venerable" (2008/2009 revitalizado con un SSD) que, aunque sigue al pie del cañón, sufre cualquier putadita que le hagan los desarrolladores de software en cuanto a mayores demandas de recursos. Si encima resulta que es un Intel y que el imprescindible parche KPTI/KAISER (yo prefiero lo de "FUCKWIT") acarrea una cierta pérdida de rendimiento, uno contempla la posibilidad de actualizar el equipo, preferentemente volviendo a AMD (a la que abandoné por los Core).
Como, antes de gastarme dos o trescientos euros, prefiero estar seguro (la Cofrafía del Puño Cerrado vigila mis movimientos), me he lanzado a hacer un par de tests sencillitos, aprovechando que el parche puede ser "fácilmente" desactivado en Linux, añadiendo una opción en el arranque del kernel.
Antes de nada, les presento al abuelo:
Intel Core 2 Duo E8400 (por supuesto, sin PCID, que empezó a incorporarse en Sandy Bridge).
Placa Asus P5P43TD (chipsets P43/ICH10) con SATA2 (SATA 300).
RAM 4x2048 MB DDR3-1066.
Disco duro SSD Crucial M500 120GB SATA3.
Y el software que voy a usar:
Debian GNU/Linux 9.3
fio 2.16 (test: ssd-test.fio)
Hardinfo 0.5.1
FIO es una herramienta que permite realizar tests personalizados de rendimiento de I/O; por su parte, Hardinfo contiene varios benchmarks que "castigan" la CPU. Sé que se ha dicho por activa y por pasiva que el proceso de computación "en bruto" no sufre apenas los efectos ralentizadores del parche, pero quería comprobarlo por mí mismo.
El test de FIO que voy a ejecutar es el "ssd-test.fio" que figura entre sus ejemplos (descargable desde la página oficial en Github). Consta de cuatro pruebas: una de lectura en acceso secuencial (0), otra de lectura en acceso aleatorio (1), escritura secuencial (2) y escritura aleatoria (3), todas con archivos de 4 kBytes durante un minuto.
He aquí el resumen de los resultados con el parche sin aplicar (si alguien lo quiere, puedo subir los resultados completos a Pastebin):
Run status group 0 (all jobs): READ: io=6717.6MB, aggrb=114643KB/s, minb=114643KB/s, maxb=114643KB/s, mint=60001msec, maxt=60001msec Run status group 1 (all jobs): READ: io=5018.8MB, aggrb=85651KB/s, minb=85651KB/s, maxb=85651KB/s, mint=60001msec, maxt=60001msec Run status group 2 (all jobs): WRITE: io=7866.8MB, aggrb=134257KB/s, minb=134257KB/s, maxb=134257KB/s, mint=60001msec, maxt=60001msec Run status group 3 (all jobs): WRITE: io=7292.5MB, aggrb=124455KB/s, minb=124455KB/s, maxb=124455KB/s, mint=60001msec, maxt=60001msec Disk stats (read/write): sdb: ios=3004474/3875269, merge=60/473, ticks=431536/435536, in_queue=865008, util=99.42%
Y con el temido parche ralentizador FUCKWIT:
Run status group 0 (all jobs): READ: io=6628.5MB, aggrb=113123KB/s, minb=113123KB/s, maxb=113123KB/s, mint=60001msec, maxt=60001msec Run status group 1 (all jobs): READ: io=4957.3MB, aggrb=84602KB/s, minb=84602KB/s, maxb=84602KB/s, mint=60001msec, maxt=60001msec Run status group 2 (all jobs): WRITE: io=7639.7MB, aggrb=130380KB/s, minb=130380KB/s, maxb=130380KB/s, mint=60001msec, maxt=60001msec Run status group 3 (all jobs): WRITE: io=7107.6MB, aggrb=121300KB/s, minb=121300KB/s, maxb=121300KB/s, mint=60001msec, maxt=60001msec Disk stats (read/write): sdb: ios=2966662/3773917, merge=41/522, ticks=426072/429820, in_queue=853836, util=98.96%
Si mis tests son correctos, parece que los "no-alarmistas" tenían razón: el impacto afecta severamente a los grandes servidores y data centers, pero los equipos domésticos apenas lo notan. Y eso que mi equipo, con sus limitaciones debidas a su antigüedad y a que el procesador carece de PCID, debería ser de los más perjudicados. Pero la pérdida de rendimiento es apenas de un 1,3% en lectura tanto secuencial como aleatoria, 2,9% en escritura secuencial y 2,5% en escritura aleatoria.
En cuanto a los tests de la CPU, aquí sin parche:
CPU Blowfish
This Machine 3003 MHz 5.846 seg.
CPU CryptoHash
This Machine 3003 MHz 362.693
CPU Fibonacci
This Machine 3003 MHz 2.380 seg.
CPU N-Queens
This Machine 3003 MHz 7.541 seg.
FPU FFT
This Machine 3003 MHz 2.707 seg.
FPU Raytracing
This Machine 3003 MHz 5.090 seg.
Con parche:
CPU Blowfish
This Machine 3003 MHz 6.066 seg. (-3,7%)
CPU CryptoHash
This Machine 3003 MHz 357.900 (-1,7%)
CPU Fibonacci
This Machine 3003 MHz 2.384 seg. (-0,2%)
CPU N-Queens
This Machine 3003 MHz 7.647 seg. (-1,4%)
FPU FFT
This Machine 3003 MHz 2.639 seg. (-2,5%)
FPU Raytracing
This Machine 3003 MHz 5.274 seg. (-3,5%)
Curiosamente, algunos tests de CPU como el Blowfish o el de coma flotante "retardan" más la máquina que las más exigentes pruebas de I/O. Eso también me hace considerar la posibilidad de que esté pasando algo por alto en estas últimas.
En cualquier caso, conclusión: no actualizo el equipo, por ahora.