Una mejora clave de rendimiento para la arquitectura RISC-V se ha integrado en el kernel Linux 7.4, abordando limitaciones presentes en versiones anteriores. Si bien una optimización anterior introducida en Linux 7.3 permitía a los kernels omitir la alineación por software para hardware que soporta copias de memoria desalineada rápidas, requería que este soporte se compilara directamente en el kernel. Este requisito en tiempo de compilación obstaculizaba la portabilidad, dificultando que las construcciones genéricas de RISC-V utilizaran esta característica a través de diversas configuraciones de hardware donde algunos dispositivos podrían no soportar accesos desalineados eficientes.
Con la llegada de Linux 7.4, el mecanismo para omitir la alineación por software se ha trasladado a la detección en tiempo de ejecución. El kernel ahora verifica dinámicamente la capacidad "HAVE_EFFICIENT_UNALIGNED_ACCESS" al manejar copias de usuario. Este cambio permite que los kernels de distribución y otras construcciones genéricas incluyan la optimización universalmente, asegurando que los sistemas con hardware compatible se beneficien automáticamente de un rendimiento mejorado sin requerir banderas de compilación específicas.
Las pruebas realizadas por Tenstorrent, quien originalmente contribuyó con la optimización para Linux 7.3, indicaron mejoras de ancho de banda de hasta el 11% cuando esta función está activa. Más allá de esta mejora en copias de usuario, la solicitud de extracción (pull request) de RISC-V para Linux 7.4 incluye varias otras actualizaciones. Estas adiciones abarcan soporte para hot-plug de fallos, rutas de código optimizadas para ciertas funciones de tablas de páginas y mejoras en el cambio de contexto. Además, la actualización integra la extensión ISA "B" de RISC-V en los informes hwcap y hwprobe, junto con el soporte para reportar la extensión ISA Zic64b de RISC-V.
Fuentes: Phoronix.