Nella release di Fedora 42, prevista per la fine di aprile, è stato proposto di consentire ai maintainer di includere nei pacchetti versioni aggiuntive di file eseguibili, compilate con ottimizzazioni per le microarchitetture x86-64-v2, x86-64-v3 e x86-64-v4. Si segnala che Fedora continua a compilare pacchetti per l'architettura x86-64-v1, mentre CentOS utilizza per la compilazione l'architettura x86-64-v2, e RHEL 10 — x86-64-v3. Nella maggior parte dei casi, il guadagno delle prestazioni nella compilazione per tali architetture non supera il 10%, ma in alcune situazioni porta a un aumento notevole delle prestazioni (fino al 120%). La proposta non è ancora stata approvata dal comitato FESCo (Fedora Engineering Steering Committee), responsabile della parte tecnica dello sviluppo del distributore Fedora.
In Fedora è già consentita la fornitura di librerie aggiuntive, ottimizzate per le versioni avanzate dell'architettura x86_64, e questa possibilità si prevede di estendere ora ai file eseguibili. Il caricamento delle implementazioni ottimizzate delle librerie avviene tramite il linker dinamico (dynamic linker), che verifica la presenza di versioni aggiuntive nelle sotto-cartelle glibc-hwcaps, collocate nelle aree del FS, esaminate durante la ricerca delle librerie (ad esempio, /usr/lib64/glibc-hwcaps/x86-64-v2).
Per i file eseguibili, si propone di utilizzare un livello hwcaps-loader, che selezionerà e avvierà la versione del file eseguibile corrispondente alle capacità del sistema attuale. Per i pacchetti che forniscono più versioni di file eseguibili, si propone di comunicare questo livello tramite un collegamento simbolico. La decisione di aggiungere file eseguibili ottimizzati sarà presa dai manutentori, in base ai risultati dei test di prestazioni di specifici pacchetti.
Le versioni x86-64-v* definiscono un modo non ufficiale per identificare i tagli dello stato della microarchitettura, coprendo determinate set di estensioni:
- x86-64-v2 copre le estensioni SSE3, SSE4_2, SSSE3, POPCNT, LAHF-SAHF e CMPXCHG16B.
- x86-64-v3 — AVX, AVX2, BMI2, FMA, LZCNT, MOVBE e SXSAVE.
- x86-64-v4 — AVX512F, AVX512BW, AVX512CD, AVX512DQ e AVX512VL.
In aggiunta, si può notare la proposta di unificare l'aggiornamento dei bootloader grub e shim nelle versioni atomiche e tradizionali di Fedora. Invece di aggiornare il contenuto delle directory /boot e /boot/efi tramite la chiamata a uno script durante l'installazione del pacchetto rpm, si propone di utilizzare lo strumento bootupd per l'aggiornamento del bootloader, che è già in uso nelle versioni aggiornabili in modo atomico di Fedora. Nei pacchetti rpm contenenti i bootloader, il contenuto è proposto per essere installato non direttamente nelle directory /boot e /boot/efi, ma in una directory separata all'interno della partizione /usr, dopo di che il contenuto di /boot e /boot/efi viene sincronizzato con esso. Questo approccio consente di implementare un'opzione di avvio secondaria, che può essere utilizzata per tornare a una configurazione precedente in caso di problemi dopo l'aggiornamento del bootloader.
Fonte: opennet.ru
