A vmlinux.o objektum objtool segítségével történő feldolgozása a Linux kernel felépítési folyamatának leginkább memóriaigényes lépése. A korábbi javítások már dolgoztak azon, hogy csökkentsék ezt az objtool memóriahasználatot a Linux kernel fordítása során, és egy nagy javítássorozat, amelyet most a Linux 6.5-höz állítanak be, jelentősen csökkenti a maximális kupachasználatot.

Amikor egy teljes hibakereső Linux kernel buildet (allyesconfig) készítünk a CONFIG_DEBUG_INFO engedélyezésével, a DWARF közel 200 millió áthelyezést hoz létre. Jelenleg ez a nagy Linux kernel hibakereső build az objtool csúcshegyhasználatához vezethet, amely eléri az 53 GB-ot. De a Linux 6.5-tel érkező optimalizálásoknak köszönhetően a csúcshasználat körülbelül 25 GB-ra csökken.

Kevésbé intenzív forgatókönyvek esetén az objtool optimalizálás előnyei is vannak. Egy disztribúciós rendszermag-felépítésnél, amelyben az Indirect Branch Tracking (IBT) engedélyezve van, az objtool csúcshasználata 4,2 GB-ról körülbelül 2,8 GB-ra csökken.


Amellett, hogy élesen csökkenti a csúcshegyet használata esetén ezek az objtool-optimalizálások gyorsabb futási időt és rövidebb kernel-felépítési időt is eredményeznek.

Josh Poimboeuf objtool fejlesztéseinek szép sorozata. Ezeket a módosításokat, valamint néhány hibakeresési és visszatekerési fejlesztést ma reggel küldtünk ki az objtool-módosítások részeként. Linux 6.5 kernelhez.

Categories: IT Info