La versión Fedora 42, programada para finales de abril, propone permitir a los mantenedores incluir binarios adicionales en paquetes creados con optimizaciones habilitadas para las microarquitecturas x86-64-v2, x86-64-v3 y x86-64-v4. Cabe señalar que Fedora continúa creando paquetes para la arquitectura x86-64-v1, mientras que CentOS Fedora utiliza la arquitectura x86-64-v2 para la compilación, mientras que RHEL 10 utiliza x86-64-v3. En la mayoría de los casos, la mejora de rendimiento al compilar en estas arquitecturas no supera el 10 %, pero en algunos casos se produce un aumento significativo (hasta un 120 %). La propuesta aún no ha sido aprobada por FESCo (Fedora Engineering Steering Committee), responsable del desarrollo técnico de la distribución Fedora.
Fedora ya permite la entrega de bibliotecas adicionales optimizadas para versiones extendidas de la arquitectura x86_64 y ahora planean extender esta característica a archivos ejecutables. La carga de implementaciones optimizadas de bibliotecas se realiza mediante un vinculador (enlazador dinámico), que verifica la presencia de opciones adicionales en los subdirectorios glibc-hwcaps ubicados en las áreas del sistema de archivos que se ven al buscar bibliotecas (por ejemplo, /usr /lib64/glibc-hwcaps/x86-64-v2).
En el caso de archivos ejecutables, se propone utilizar la capa hwcaps-loader, que seleccionará y ejecutará una versión del archivo ejecutable que coincida con las capacidades del sistema actual. Para paquetes que proporcionan varias versiones de archivos ejecutables, se propone exponer esta capa a través de un enlace simbólico. La decisión de agregar ejecutables optimizados adicionales la tomarán los mantenedores, dependiendo de los resultados de las pruebas de rendimiento de paquetes específicos.
Las versiones x86-64-v* definen una forma informal de identificar sectores de estado de microarquitectura que abarcan conjuntos específicos de extensiones:
- x86-64-v2 cubre las extensiones SSE3, SSE4_2, SSSE3, POPCNT, LAHF-SAHF y CMPXCHG16B.
- x86-64-v3: AVX, AVX2, BMI2, FMA, LZCNT, MOVBE y SXSAVE.
- x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ y AVX512VL.
Además, podemos destacar la propuesta de unificar la actualización de los cargadores de arranque grub y shim en las versiones atómica y regular de Fedora. En lugar de actualizar el contenido de los directorios /boot y /boot/efi mediante una llamada de script durante la instalación del paquete rpm, se propone utilizar el kit de herramientas bootupd, que ya se utiliza en variantes actualizadas atómicamente de Fedora, para actualizar el gestor de arranque. En paquetes rpm con gestores de arranque, se propone instalar el contenido no directamente en los directorios /boot y /boot/efi, sino en un directorio separado dentro de la partición /usr, y luego sincronizar el contenido de /boot y /boot/efi. con eso. Este enfoque permitirá implementar una opción de arranque alternativo, que se puede utilizar para volver a la configuración anterior en caso de problemas después de actualizar el gestor de arranque.
Fuente: opennet.ru
