Ingo Molnar, zhvilluesi i njohur i bĂ«rthamĂ«s Linux dhe autori i planifikuesit tĂ« detyrave CFS (Completely Fair Scheduler), ka propozuar pĂ«r diskutim nĂ« listĂ«n e korrespondencĂ«s sĂ« zhvilluesve tĂ« bĂ«rthamĂ«s Linux njĂ« sĂ«rĂ« patch-esh qĂ« prekin mĂ« shumĂ« se gjysmĂ«n e tĂ« gjitha skedarĂ«ve nĂ« kodin burimor tĂ« bĂ«rthamĂ«s dhe ofrojnĂ« njĂ« rritje tĂ« shpejtĂ«sisĂ« sĂ« rinovimit tĂ« plotĂ« tĂ« bĂ«rthamĂ«s nga 50-80% nĂ« varĂ«si tĂ« konfigurimeve. Optimizimi i realizuar Ă«shtĂ« i rĂ«ndĂ«sishĂ«m sepse lidhet me shtimin e setit mĂ« tĂ« madh tĂ« ndryshimeve nĂ« historinĂ« e zhvillimit tĂ« bĂ«rthamĂ«s â pĂ«r t'u inkorporuar, janĂ« propozuar 2297 patch-e qĂ« ndryshojnĂ« mĂ« shumĂ« se 25 mijĂ« skedarĂ« (10 mijĂ« skedarĂ« tituj nĂ« katalogĂ«t «include/» dhe «arch/*/include/» dhe 15 mijĂ« skedarĂ« me kod burimor).
Rritja e performancës arrihet përmes ndryshimit të metodës së përpunimit të skedave të titujve. Vërehet se pas tridhjetë vjetësh zhvillimi të bërthamës, gjendja e skedave të titujve ka marrë një pamje të shqetësueshme për shkak të numrit të madh të varësive të ndërthurura midis skedave. Puna për restrukturimin e skedave të titujve zgjati më shumë se një vit dhe kërkoi një rindërtim të konsiderueshëm të hierarkisë dhe varësive. Gjatë restrukturimit, u përfundua puna për ndarjen e definicioneve të tipeve dhe API për sisteme të ndryshme të bërthamës.
Ndër ndryshimet e bëra: ndarja e skedarëve të titujve të nivelit të lartë nga njëri-tjetri, përjashtimi i skedarëve për lidhjen e funksioneve inline, dedikimi i skedarëve të titujve për llojet dhe API, sigurimi i ndarjes së ndërtimit të skedarëve të titujve (rreth 80 skedarë kishin varësi të panevojshme që pengonin ndërtimin përmes skedarëve të tjerë), shtimi automatik i varësive në skedarët «.h» dhe «.c», optimizimi hap pas hapi i skedarëve të titujve, përdorimi i modit «CONFIG_KALLSYMS_FAST=y», konsolidimi selektiv i skedarëve C në blloqe ndërtimi për të zvogëluar numrin e skedarëve objekt.
Si përfundim, puna e bërë lejoi një reduktim prej 1-2 rendesh të madhësisë së skedarëve të titullit që përpunohen në fazën e pas-përpunimit. Për shembull, para optimizimit, përdorimi i skedarit të titullit «linux/gfp.h» shkaktonte shtimin e 13543 rreshtave të kodit dhe lidhjes së 303 skedarëve të titujve të varur, ndërsa pas optimizimit, madhësia u reduktua në 181 rreshta dhe 26 skedarë të varur. Ose një shembull tjetër: gjatë përpunimit të skedarit «kernel/pid.c» pa patch, lidheshin 94 mijë rreshta kodi, shumica e të cilëve nuk përdoren në pid.c. Ndara e skedarëve të titujve lejoi një reduktim të volumit të kodit të përpunuar me tre herë, duke reduktuar numrin e rreshtave të përpunuar në 36 mijë.
Me rindjen e plotĂ« tĂ« bĂ«rthamĂ«s me komandĂ«n «make -j96 vmlinux» nĂ« sistemin e testimit, aplikimi i patch-Ă«ve tregoi njĂ« ulje tĂ« kohĂ«s sĂ« ndĂ«rtimit tĂ« degĂ«s v5.16-rc7 nga 231.34 nĂ« 129.97 sekonda (nga 15.5 nĂ« 27.7 ndĂ«rtime nĂ« orĂ«), si dhe rriti efikasitetin e pĂ«rdorimit tĂ« bĂ«rthamave tĂ« CPU gjatĂ« ndĂ«rtimit. NĂ« ndĂ«rtimin inkremental, efekti i optimizimit Ă«shtĂ« edhe mĂ« i dukshĂ«m â koha pĂ«r rindĂ«rtimin e bĂ«rthamĂ«s pas ndryshimeve nĂ« skedujt e titullit Ă«shtĂ« reduktuar ndjeshĂ«m (nga 112% nĂ« 173% nĂ« varĂ«si tĂ« skedarit tĂ« titullit tĂ« ndryshuar). Optimizmat aktualisht janĂ« nĂ« dispozicion vetĂ«m pĂ«r arkitekturat ARM64, MIPS, Sparc dhe x86 (32- dhe 64-bit).
Burimi: opennet.ru
