Zusammenfassung:
Die Entwicklungsversion von Linux 7.4 enthält eine Reihe von Kbuild-Optimierungsänderungen, um Single-Thread-Engpässe und sich wiederholende Arbeiten im Kernel-Kompilierungsprozess zu beschleunigen. Kbuild ist das Build-System des Linux-Kernels, das für die Organisation der Konfigurations-, Kompilierungs- und Verknüpfungsschritte verantwortlich ist. Die entsprechenden Änderungen wurden von Lorenzo Stoakes, einem Arm-Ingenieur und langjährigen Kernel-Entwickler, vorgeschlagen.

Zu den Optimierungen, die in dieser Runde integriert wurden, gehören die Reduzierung des Zuordnungsaufwands des .modinfo-Abschnitts im Kernel-Image, die Beschleunigung der Generierung der Kallsyms-Symboltabelle, das Überspringen der nm-Ausgabesortierung, wenn die Reihenfolge irrelevant ist, die Generierung der erforderlichen Verschiebungsinformationen nur in der letzten Link-Phase, das Umschreiben von mksysmap in C-Sprache und das Verschieben einiger Compiler- und Linker-Fähigkeitstests in die Kconfig-Phase, um Ergebnisse zwischenzuspeichern. Wenn Pigz auf dem System installiert ist, wird es außerdem zuerst verwendet, um die GZIP-Komprimierung zu beschleunigen. Die oben genannten Anpassungen reduzieren die Zwischendatenverarbeitung sowie wiederholte Prüf- und Serialisierungsschritte.
Frühe Tests der gesamten Patch-Serie zeigen, dass Builds mit allen aktivierten Modulen etwa 36 % schneller sind, inkrementelle Kompilierungen etwa 70 % schneller und No-Op-Builds ohne tatsächliche Neuerstellung bis zu etwa 90 % schneller sind. Anschließend testete Phoronix den vollständigen Satz v4-Patches auf einem AMD EPYC 9575F-Server mit zwei Sockeln und Ubuntu 26.04 LTS. Der saubere x86_64-defconfig-Kernel-Build wurde von etwa 22 Sekunden auf 15 bis 17 Sekunden verkürzt, und der allmodconfig-Build wurde um mehr als 30 Sekunden verkürzt. Diese Zahlen testen jedoch den gesamten Patch-Satz. Linux 7.4 enthält derzeit nur eine Reihe von Änderungen. Die tatsächlichen Vorteile müssen vor der Evaluierung abgewartet werden, bis weitere Patches integriert sind.
Diese Optimierungsarbeit basiert auch auf KI-Tools. Stoakes sagte, dass er ein großes Sprachmodell verwendet habe, um Engpässe bei der Konstruktion zu lokalisieren und Verbesserungslösungen zu erkunden, aber einige der vom Modell generierten Codes seien von schlechter Qualität gewesen; Er hat persönlich eine große Menge Code überprüft und neu geschrieben und die Build-Ergebnisse, die Ausführung von Kerneln und Leistungsänderungen manuell überprüft.
Kommentare