In der für Ende April geplanten Veröffentlichung von Fedora 42 wurde vorgeschlagen, dass die Maintainer zusätzliche Varianten von ausführbaren Dateien in Paketen einfügen dürfen, die mit Optimierungen für die Mikroarchitekturen x86-64-v2, x86-64-v3 und x86-64-v4 erstellt wurden. Es wird darauf hingewiesen, dass Fedora weiterhin Pakete für die Architektur x86-64-v1 erstellt, während CentOS bei der Erstellung die Architektur x86-64-v2 verwendet und RHEL 10 die Architektur x86-64-v3 nutzt. In den meisten Fällen überschreitet der Leistungszuwachs bei der Erstellung für solche Architekturen 10 % nicht, kann jedoch in bestimmten Situationen zu einem deutlichen Leistungsanstieg (bis zu 120 %) führen. Der Vorschlag ist noch nicht vom FESCo (Fedora Engineering Steering Committee), das für den technischen Teil der Entwicklung der Fedora-Distribution verantwortlich ist, genehmigt worden.
In Fedora wird bereits die Bereitstellung zusätzlicher Bibliotheken unterstützt, die für erweiterte Versionen der x86_64-Architektur optimiert sind, und diese Möglichkeit soll nun auf die ausführbaren Dateien ausgeweitet werden. Der Download der optimierten Implementierungen von Bibliotheken erfolgt durch den dynamischen Linker, der nach zusätzlichen Varianten in den Unterverzeichnissen von glibc-hwcaps sucht, die in den Dateisystembereichen abgelegt sind, die beim Suchen nach Bibliotheken durchsucht werden (z. B. /usr/lib64/glibc-hwcaps/x86-64-v2).
Für ausführbare Dateien wird empfohlen, eine Schicht namens hwcaps-loader zu verwenden, die die Version der ausführbaren Datei auswählt und startet, die den Möglichkeiten des aktuellen Systems entspricht. Für Pakete, die mehrere Varianten von ausführbaren Dateien bereitstellen, wird empfohlen, diese Schicht über einen symbolischen Link zu verwenden. Die Entscheidung über die Hinzufügung zusätzlich optimierter ausführbarer Dateien wird von den Betreuern getroffen, basierend auf den Ergebnissen der Leistungstests spezifischer Pakete.
Die Versionen x86-64-v* definieren eine inoffizielle Methode zur Identifizierung von Mikroarchitekturzuständen, die bestimmte Erweiterungssätze abdecken:
- x86-64-v2 umfasst die Erweiterungen SSE3, SSE4_2, SSSE3, POPCNT, LAHF-SAHF und CMPXCHG16B.
- x86-64-v3 — AVX, AVX2, BMI2, FMA, LZCNT, MOVBE und SXSAVE.
- x86-64-v4 — AVX512F, AVX512BW, AVX512CD, AVX512DQ und AVX512VL.
Darüber hinaus sollte das Angebot zur Vereinheitlichung der Aktualisierung von Grub- und Shim-Bootloadern in atomaren und regulären Fedora-Varianten erwähnt werden. Anstelle der Aktualisierung der Inhalte der Verzeichnisse /boot und /boot/efi durch ein Skript während der Installation eines RPM-Pakets wird vorgeschlagen, das Tool bootupd zu verwenden, das bereits in atomar aktualisierbaren Fedora-Varianten eingesetzt wird, um den Bootloader zu aktualisieren. Der Inhalt der RPM-Pakete mit Bootloadern sollte nicht direkt in die Verzeichnisse /boot und /boot/efi installiert werden, sondern in ein einzelnes Verzeichnis innerhalb der /usr-Partition, gefolgt von der Synchronisation mit den Inhalten von /boot und /boot/efi. Ein solcher Ansatz ermöglicht die Implementierung einer Backup-Option, die verwendet werden kann, um bei Problemen nach dem Update des Bootloaders auf eine frühere Konfiguration zurückzukehren.
Quelle: opennet.ru
