Przetwarzanie obiektu vmlinux.o za pomocą narzędzia objtool było najbardziej wymagającym pod względem pamięci etapem procesu budowania jądra Linuksa. Wcześniejsze łatki działały już w celu zmniejszenia wykorzystania pamięci objtool podczas kompilacji jądra Linuksa, a seria dużych łat ustawionych teraz dla Linuksa 6.5 ma znacznie zmniejszyć maksymalne wykorzystanie sterty.

Podczas budowania pełnego debugowania jądra Linuksa (allyesconfig) z włączonym CONFIG_DEBUG_INFO, DWARF tworzy prawie 200 milionów relokacji. Obecnie ta duża kompilacja debugowania jądra Linuksa może spowodować, że szczytowe użycie sterty objtool osiągnie 53 GB. Ale dzięki tym optymalizacjom wprowadzonym w Linuksie 6.5 szczytowe wykorzystanie sterty spadnie do około 25 GB.

W przypadku mniej intensywnych scenariuszy te optymalizacje objtool również przynoszą korzyści. Kompilacja jądra typu dystrybucyjnego z włączonym Indirect Branch Tracking (IBT) spowoduje spadek szczytowego wykorzystania sterty objtool z 4,2 GB do około 2,8 GB.


Oprócz gwałtownego obniżenia sterty pików użyciu, te optymalizacje objtool prowadzą również do szybszych czasów działania, a co za tym idzie, do krótszych czasów kompilacji jądra.

To niezły zestaw ulepszeń narzędzia objtool autorstwa Josha Poimboeufa. Te zmiany wraz z pewnymi ulepszeniami debugowania i unwinderem zostały wysłane dziś rano jako część zmian narzędzia objtool dla jądra Linuksa 6.5.

Categories: IT Info