Die Verarbeitung des vmlinux.o-Objekts mit objtool war der speicherintensivste Schritt des Linux-Kernel-Erstellungsprozesses. Frühere Patches haben bereits dazu beigetragen, die Speichernutzung dieses Objtools beim Kompilieren des Linux-Kernels zu reduzieren, und eine große Patch-Serie, die jetzt für Linux 6.5 geplant ist, soll die maximale Heap-Nutzung drastisch reduzieren.

Beim Erstellen eines vollständigen Debug-Linux-Kernel-Builds (allyesconfig) mit aktiviertem CONFIG_DEBUG_INFO erstellt DWARF fast 200 Millionen Verschiebungen. Derzeit kann dieser große Linux-Kernel-Debug-Build dazu führen, dass die maximale Heap-Nutzung von objtool 53 GB erreicht. Aber dank dieser Optimierungen, die mit Linux 6.5 einhergehen, wird die maximale Heap-Nutzung auf etwa 25 GB sinken.

Für weniger intensive Szenarien bieten diese Objekttool-Optimierungen ebenfalls Vorteile. Bei einem Kernel-Build vom Typ Distribution mit aktiviertem Indirect Branch Tracking (IBT) sinkt die maximale Heap-Nutzung von objtool von 4,2 GB auf etwa 2,8 GB.


Außerdem wird der Spitzenhaufen deutlich gesenkt Bei Verwendung führen diese Objtool-Optimierungen auch zu schnelleren Laufzeiten und damit zu kürzeren Kernel-Erstellungszeiten.

Es ist eine schöne Reihe von Objtool-Verbesserungen von Josh Poimboeuf. Diese Änderungen wurden zusammen mit einigen Debugging-Verbesserungen und Unwinder-Verbesserungen heute Morgen als Teil der objtool-Änderungen verschickt für den Linux 6.5-Kernel.

Categories: IT Info