Kushicilelwe isethi yama-patches asheshisa ukwakhiwa kwe-Linux kernel ngo-50-80%

U-Ingo Molnar, umthuthukisi we-Linux kernel owaziwa kakhulu nombhali we-CFS (Completely Fair Scheduler) umsebenzi we-CFS (Completely Fair Scheduler), ohlongozwayo ukuthi kuxoxwe ngohlu lweposi lonjiniyela we-Linux kernel uchungechunge lwamapeshi athinta ngaphezu kwengxenye yawo wonke amafayela emithonjeni ye-kernel futhi. hlinzeka ngokukhuphuka kwejubane lokwakhiwa kabusha kwe-kernel ephelele ngo-50-80% kuye ngezilungiselelo. Ukwenziwa ngcono okusetshenzisiwe kuyaphawuleka ngoba kuhlotshaniswa nokwengezwa kwesethi enkulu kunazo zonke yezinguquko emlandweni wokuthuthukiswa kwe-kernel - ama-patches angama-2297 ahlongozwa ukuthi afakwe ngesikhathi esisodwa, kushintshwa amafayela angaphezu kwezinkulungwane ezingama-25 (amafayela enhlokweni ayizinkulungwane eziyi-10 ku-"faka phakathi /” kanye nemibhalo ethi “arch/*/include/” "kanye namafayela ayizinkulungwane eziyi-15 anemibhalo ewumthombo).

Inzuzo yokusebenza itholakala ngokushintsha indlela yokucubungula amafayela kanhlokweni. Kuyaphawuleka ukuthi ngaphezu kweminyaka engamashumi amathathu yokuthuthukiswa kwe-kernel, isimo samafayela enhlokweni sithathe ukubukeka okucindezelayo ngenxa yokuba khona kwenani elikhulu lokuncika phakathi kwamafayela. Ukuhlelwa kabusha kwefayela elingunhlokweni kuthathe isikhathi esingaphezu konyaka futhi kudinga ukusetshenzwa kabusha okubalulekile kwesigaba nokuncika. Ngesikhathi sokuhlelwa kabusha, kwenziwa umsebenzi wokuhlukanisa izincazelo zezinhlobo nama-API wezinhlelo ezingaphansi ze-kernel.

Phakathi kwezinguquko ezenziwe: ukuhlukanisa amafayela anhlokweni asezingeni eliphezulu komunye nomunye, ukususa imisebenzi esemgqeni exhumanisa amafayela anhlokweni, ukuhlukanisa amafayela anhlokweni ezinhlobo nama-API, ukuqinisekisa ukuhlanganiswa okuhlukene kwamafayela anhlokweni (cishe amafayela angu-80 ayenokuncika okungaqondile okuphazamisa ukuhlanganiswa, kudalulwe amanye amafayela anhlokweni), ukwengezwa okuzenzakalelayo kokuncika kumafayela athi “.h” kanye “.c”, ukwenziwa ngcono kwesinyathelo nesinyathelo kwamafayela unhlokweni, ukusetshenziswa kwemodi ethi “CONFIG_KALLSYMS_FAST=y”, ukuhlanganiswa okukhethiwe kwamafayela C abe amabhlogo wokuhlanganisa ukuze yehlisa inani lamafayela ento.

Ngenxa yalokho, umsebenzi owenziwe wenze kwaba nokwenzeka ukunciphisa usayizi wamafayela enhlokweni acutshungulwe esigabeni sokucubungula kusengaphambili ngama-oda angu-1-2 wobukhulu. Isibonelo, ngaphambi kokuthuthukiswa, ukusebenzisa ifayela lesihloko esithi "linux/gfp.h" kuholele ekwengezweni kwemigqa yekhodi ye-13543 kanye nokufakwa kwamafayela angama-303 ancike kunhlokweni, futhi ngemva kokwenza kahle usayizi wehliswa waba imigqa engu-181 namafayela ancike ku-26. Noma esinye isibonelo: uma ucubungula ngaphambilini ifayela elithi “kernel/pid.c” ngaphandle kwesichibi, imigqa yekhodi eyinkulungwane ezingama-94 ifakiwe, eminingi yayo engasetshenziswa ku-pid.c. Ukuhlukanisa amafayela enhlokweni kwenza kube nokwenzeka ukunciphisa inani lekhodi ecutshungulwe izikhathi ezintathu, ukunciphisa inani lemigqa ecutshunguliwe kuya ku-36 ayizinkulungwane.

Lapho i-kernel yakhiwe kabusha ngokuphelele ngomyalo othi "make -j96 vmlinux" ohlelweni lokuhlola, ukusetshenziswa kwama-patches kubonise ukuncipha kwesikhathi sokwakhiwa kwegatsha le-v5.16-rc7 ukusuka kumasekhondi angu-231.34 kuya ku-129.97 (kusuka ku-15.5 kuya ku-27.7 ukwakha ngehora), futhi andisa ukusebenza kahle kokusebenzisa ama-CPU cores ngesikhathi semihlangano. Ngokwakhiwa okukhulayo, umphumela wokwenza kahle ubonakala nakakhulu - isikhathi sokwakha kabusha i-kernel ngemva kokwenza izinguquko kumafayela enhlokweni sehle kakhulu (kusuka ku-112% kuya ku-173% kuye ngokuthi ifayela likanhlokweni liyashintshwa). Ukuthuthukisa okwamanje kutholakala kuphela kuzakhiwo ze-ARM64, MIPS, Sparc kanye ne-x86 (32- kanye ne-64-bit).

Source: opennet.ru

Engeza amazwana