Die zweite Version von Patches mit Umstrukturierung der Linux-Kernel-Header-Dateien

Ingo Molnar stellte die zweite Version einer Reihe von Patches vor, die die Zeit für die Neuerstellung des Kernels erheblich verkürzen können, indem sie die Hierarchie der Header-Dateien umstrukturieren und die Anzahl der gegenseitigen Abhängigkeiten reduzieren. Die neue Version unterscheidet sich von der vor einigen Tagen vorgeschlagenen ersten Version dadurch, dass sie für den 5.16-rc8-Kernel angepasst wurde, zusätzliche Optimierungen hinzufügt und Unterstützung für die Erstellung mit dem Clang-Compiler implementiert. Bei Verwendung von Clang reduzierte die Anwendung von Patches die Build-Zeit um 88 % bzw. 77 % im Hinblick auf den CPU-Ressourcenverbrauch. Beim kompletten Neuaufbau des Kernels mit dem Befehl „make -j96 vmlinux“ konnte die Buildzeit von 337.788 auf 179.773 Sekunden reduziert werden.

Die neue Version löst außerdem das Problem mit GCC-Plugins, korrigiert Fehler, die während des ersten Überprüfungsprozesses festgestellt wurden, und vereinheitlicht doppelte Deklarationen der Struktur „task_struct_per_task“. Darüber hinaus wurde die Optimierung der Header-Datei linux/sched.h fortgesetzt und die Optimierung der Header-Dateien des RDMA-Subsystems (Infiniband) implementiert, wodurch die Build-Zeit im Vergleich zur ersten Version noch einmal um 9 % verkürzt werden konnte der Patches. Die Anzahl der Kernel-C-Dateien, die die Header-Datei linux/sched.h enthalten, wurde im Vergleich zur ersten Version der Patches von 68 % auf 36 % reduziert (von 99 % auf 36 % im Vergleich zum ursprünglichen Kernel).

Source: opennet.ru

Kommentar hinzufügen