Ho phatlalalitsoe lihlopha tsa li-patches tse potlakisang kaho ea Linux kernel ka 50-80%

Ingo Molnar, moqapi ea tsebahalang oa Linux kernel ebile e le sengoli sa kemiso ea mesebetsi ea CFS (Completely Fair Scheduler), ea khothalelitsoeng hore ho buisanoe ka lethathamo la mangolo la mohlahlami oa Linux kernel letoto la lipache tse amang karolo e fetang halofo ea lifaele tsohle mehloling ea kernel. fana ka keketseho ea lebelo la kernel e hahiloeng bocha ka 50-80% ho latela litlhophiso. Ntlafatso e kentsoeng ts'ebetsong e bohlokoa hobane e amahanngoa le kenyelletso ea liphetoho tse kholo ka ho fetisisa nalaneng ea nts'etsopele ea kernel - li-patches tse 2297 li ile tsa hlahisoa hore li kenyelle hang-hang, ho fetola lifaele tse fetang likete tse 25 (lifaele tsa lihlooho tse likete tse 10 ho "kenyelletsa. /" le "arch/*/include/" li-directory "le lifaele tse likete tse 15 tse nang le litemana tsa mohloli).

Phaello ea ts'ebetso e finyelloa ka ho fetola mokhoa oa ho sebetsana le lifaele tsa lihlooho. Hoa hlokomeloa hore ka lilemo tse mashome a mararo tsa tsoelo-pele ea kernel, boemo ba lifaele tsa lihlooho bo nkile ponahalo e nyahamisang ka lebaka la ho ba teng ha palo e kholo ea ho itšetleha ka li-cross pakeng tsa lifaele. Tokiso ea lihloho tsa faele e nkile nako e fetang selemo 'me e hloka hore ho lokisoe bocha ba bolaoli le ba itšetlehileng ka bona. Nakong ea tlhophiso, ho ile ha etsoa mosebetsi oa ho arola litlhaloso tsa mofuta le li-API bakeng sa litsamaiso tse fapaneng tsa kernel.

Har'a liphetoho tse entsoeng: ho arola lifaele tsa lihlooho tsa boemo bo holimo ho tse ling, ho felisa mesebetsi e ka hare e hokahanyang lifaele tsa lihlooho, ho arola lifaele tsa lihlooho bakeng sa mefuta le li-API, ho netefatsa kopano e arohaneng ea lifaele tsa lihlooho (lifaele tse ka bang 80 li na le litšepe tse sa tobang tse sitisang kopano, tse pepesitsoeng lifaele tse ling tsa lihlooho), tlatsetso ea boiketsetso ho ".h" le ".c" lifaele, ntlafatso ea mohato ka mohato oa lifaele tsa lihlooho, ts'ebeliso ea "CONFIG_KALLSYMS_FAST=y" mokhoa, ho kopanya lifaele tsa C ho li-block tsa kopano fokotsa palo ea lifaele tsa ntho.

Ka lebaka leo, mosebetsi o entsoeng o entse hore ho khonehe ho fokotsa boholo ba lifaele tsa lihlooho tse sebetsoang sethaleng sa post-preprocessing ka litaelo tsa 1-2 tsa boholo. Ka mohlala, pele ho ntlafatsa, ho sebelisa faele ea sehlooho "linux/gfp.h" ho ile ha fella ka ho eketsoa ha mela ea 13543 ea khoutu le ho kenngoa ha lifaele tsa lihlooho tse itšetlehileng ka 303, 'me ka mor'a ho ntlafatsa boholo bo fokotsehile ho mela ea 181 le lifaele tse itšetlehileng ka 26. Kapa mohlala o mong: ha o ntse o lokisa faele "kernel/pid.c" ntle le patch, mela e likete tse 94 ea khoutu e kenyelelitsoe, eo boholo ba eona e sa sebelisoeng pid.c. Ho arola lifaele tsa lihlooho ho entse hore ho khonehe ho fokotsa palo ea khoutu e entsoeng ka makhetlo a mararo, ho fokotsa palo ea mela e sebetsitsoeng ho 36 tse likete.

Ha kernel e tsosolosoa ka ho feletseng ka taelo ea "make -j96 vmlinux" tsamaisong ea teko, ho sebelisoa ha li-patches ho ile ha bontša ho fokotseha ha nako ea kaho ea lekala la v5.16-rc7 ho tloha metsotsoana ea 231.34 ho ea ho 129.97 (ho tloha 15.5 ho ea ho 27.7 ka hora), hape e ekelitse katleho ea ho sebelisa li-cores tsa CPU nakong ea likopano. Ka mohaho o ntseng o eketseha, phello ea ho ntlafatsa e bonahala le ho feta - nako ea ho tsosolosa kernel ka mor'a ho etsa liphetoho ho lifaele tsa lihlooho e fokotsehile haholo (ho tloha ho 112% ho ea ho 173% ho itšetlehile ka faele ea hlooho e fetotsoeng). Lintlafatso li fumaneha feela bakeng sa meaho ea ARM64, MIPS, Sparc le x86 (32- le 64-bit).

Source: opennet.ru

Eketsa ka tlhaloso