Se sabe que la aritmética de punto flotante (FP) no está soportada dentro de los núcleos basados en Linux/BSD. ¿Cuál es la sobrecarga de tratar con registros FP dentro del kernel?
Respuesta
¿Demasiados anuncios?La respuesta habitual es que si el núcleo no utiliza la coma flotante, no tiene que guardar los registros de coma flotante al entrar en el núcleo ni restaurarlos al salir. Esto ahorra varios cientos de ciclos del coste de todas las llamadas al sistema.
No sé si alguien ha intentado comparar este ahorro con las mejoras de rendimiento que podría haber si el kernel pudiera hacer un uso indiscriminado de esos registros. Tenga en cuenta que puede utilizarlos en el kernel si se tiene el debido cuidado, y esto se hace en contextos en los que se obtienen enormes beneficios de velocidad, por ejemplo, utilizando instrucciones SSE para acelerar memcpy
y similares. (Busque las llamadas a kernel_fpu_begin
en las fuentes de Linux).