Sett hefur verið út plástra sem flýta fyrir byggingu Linux kjarnans um 50-80%

Ingo Molnar, vel þekktur Linux kjarnahönnuður og höfundur CFS (Completely Fair Scheduler) verkefnaáætlunargerðarinnar, lagði til umræðu á póstlista Linux kjarna þróunaraðila röð plástra sem hafa áhrif á meira en helming allra skráa í kjarnaheimildum og veita aukningu á hraða algjörrar endurbyggingar kjarna um 50-80% eftir stillingum. Útfærða hagræðingin er athyglisverð að því leyti að hún tengist því að bæta við stærsta mengi breytinga í sögu kjarnaþróunar - 2297 plástrar voru lagðir til í einu, og breyttu meira en 25 þúsund skrám (10 þúsund hausskrár í „meðal. /” og “arch/*/include/” möppur "og 15 þúsund skrár með frumtexta).

Ávinningurinn er náð með því að breyta aðferð við vinnslu hausskráa. Það er tekið fram að yfir þrjátíu ára kjarnaþróun hefur ástand hausskránna tekið á sig niðurdrepandi útlit vegna tilvistar fjölda krossháðra milli skráa. Endurskipulagning hausskrár tók meira en ár og krafðist verulegrar endurvinnslu á stigveldi og ósjálfstæði. Við endurskipulagninguna var unnið að því að aðskilja tegundaskilgreiningar og API fyrir mismunandi undirkerfi kjarna.

Meðal breytinga sem gerðar voru: að aðskilja hausskrár á háu stigi frá hvor öðrum, útrýma innbyggðum aðgerðum sem tengja hausskrár, aðgreina hausskrár fyrir gerðir og API, tryggja aðskilda samsetningu hausskráa (um 80 skrár voru með óbeina ósjálfstæði sem trufluðu samsetningu, afhjúpuð í gegnum aðrar hausskrár), sjálfvirk viðbót við ósjálfstæði við „.h“ og „.c“ skrár, skref-fyrir-skref fínstilling á hausskrám, notkun „CONFIG_KALLSYMS_FAST=y“ ham, sértæk sameining C skráa í samsetningarblokkir til að fækka hlutum skrám.

Fyrir vikið gerði vinnan það mögulegt að minnka stærð hausskráa sem unnar voru á eftirforvinnslustigi um 1-2 stærðargráður. Til dæmis, fyrir fínstillingu, leiddi notkun hausskrárinnar „linux/gfp.h“ til þess að 13543 línur af kóða bættust við og 303 háðar hausskrár voru teknar inn og eftir fínstillingu var stærðin minnkað í 181 línu og 26 háðar skrár. Eða annað dæmi: við forvinnslu á skránni „kernel/pid.c“ án plásturs eru 94 þúsund línur af kóða innifalinn, sem flestar eru ekki notaðar í pid.c. Með því að aðskilja hausskrárnar var hægt að minnka magn af unnum kóða um þrisvar og fækkaði vinnslulínum í 36 þúsund.

Þegar kjarninn var algjörlega endurbyggður með „make -j96 vmlinux“ skipuninni á prófunarkerfi sýndi beiting plástra styttingu á byggingartíma v5.16-rc7 útibúsins úr 231.34 í 129.97 sekúndur (úr 15.5 í 27.7 smíði) á klukkustund), og jók einnig skilvirkni þess að nota CPU kjarna við samsetningar. Með stigvaxandi byggingu eru áhrif hagræðingar enn meira áberandi - tíminn til að endurbyggja kjarnann eftir að breytingar hafa verið gerðar á hausskránum hefur minnkað verulega (úr 112% í 173% eftir því hvaða hausskrá er breytt). Hagræðingar eru sem stendur aðeins fáanlegar fyrir ARM64, MIPS, Sparc og x86 (32- og 64-bita) arkitektúra.

Heimild: opennet.ru

Bæta við athugasemd