Chaidh seata de phìosan fhoillseachadh a luathaicheas togail an kernel Linux le 50-80%

Mhol Ingo Molnar, leasaiche kernel Linux ainmeil agus ùghdar clàr-ama gnìomh CFS (Completely Fair Scheduler), airson deasbad air liosta puist leasaiche kernel Linux sreath de phìosan a bheir buaidh air còrr air leth de na faidhlichean anns na stòran kernel agus thoir àrdachadh air astar ath-thogail kernel iomlan le 50-80% a rèir nan suidheachaidhean. Tha an optimization gnìomhaichte air a thoirt fa-near leis gu bheil e co-cheangailte ri bhith a’ cur ris an t-seata atharrachaidhean as motha ann an eachdraidh leasachadh kernel - chaidh 2297 badan a mholadh airson an toirt a-steach aig an aon àm, ag atharrachadh barrachd air 25 mìle faidhle (10 mìle faidhle cinn anns an “gabhail a-steach /” agus “arch/*/ include/” eòlaire ”agus 15 mìle faidhle le teacsaichean stòr).

Tha buannachd dèanadais air a choileanadh le bhith ag atharrachadh an dòigh air a bhith ag obrachadh faidhlichean cinn. Thathas a’ toirt fa-near, thairis air trithead bliadhna de leasachadh kernel, gu bheil staid nam faidhlichean cinn air coltas dubhach a ghabhail air sgàth gu bheil àireamh mhòr de thar-eisimeileachd eadar faidhlichean. Thug ath-structaradh nam faidhle cinn còrr air bliadhna agus bha feum air ath-obrachadh mòr air an rangachd agus eisimeileachd. Rè an ath-structaradh, chaidh obair a dhèanamh gus mìneachaidhean seòrsa agus APIan a sgaradh airson diofar fo-shiostaman kernel.

Am measg nan atharrachaidhean a chaidh a dhèanamh: a’ sgaradh faidhlichean cinn àrd-ìre bho chèile, cuir às do ghnìomhan in-loidhne a tha a’ ceangal faidhlichean cinn, a’ sgaradh faidhlichean cinn airson seòrsaichean agus APIan, a’ dèanamh cinnteach à co-chruinneachadh fa leth de fhaidhlichean cinn (bha eisimeileachd neo-dhìreach aig timcheall air 80 faidhle a’ cur bacadh air co-chruinneachadh, fosgailte tro faidhlichean cinn eile), cuir gu fèin-ghluasadach eisimeileachd ri faidhlichean “.h” agus “.c”, optimization ceum air cheum de fhaidhlichean cinn, cleachdadh modh “CONFIG_KALLSYMS_FAST=y”, daingneachadh roghnach de fhaidhlichean C gu blocaichean cruinneachaidh gu lughdaich an àireamh de fhaidhlichean nì.

Mar thoradh air an sin, bha an obair a chaidh a dhèanamh comasach air meud nam faidhlichean cinn a chaidh a phròiseasadh aig an ìre iar-ghiollachd a lughdachadh le 1-2 òrdughan meudachd. Mar eisimpleir, mus deach an leasachadh as fheàrr, le bhith a’ cleachdadh am faidhle cinn “linux/gfp.h” chaidh 13543 loidhnichean de chòd a chur ris agus chaidh 303 faidhle cinn an eisimeil a thoirt a-steach, agus às deidh optimization chaidh am meud a lughdachadh gu loidhnichean 181 agus faidhlichean eisimeileach 26. No eisimpleir eile: nuair a bhios tu a’ deasachadh an fhaidhle “kernel/pid.c” às aonais bad, tha 94 mìle loidhne de chòd air an toirt a-steach, agus chan eil a’ mhòr-chuid dhiubh air an cleachdadh ann am pid.c. Le bhith a 'sgaradh nam faidhlichean cinn bha e comasach an àireamh de chòd pròiseasaichte a lùghdachadh trì tursan, a' lùghdachadh an àireamh de loidhnichean giullachd gu 36 mìle.

Nuair a chaidh an kernel ath-thogail gu tur leis an àithne “make -j96 vmlinux” air siostam deuchainn, sheall cleachdadh badan lùghdachadh ann an ùine togail meur v5.16-rc7 bho 231.34 gu 129.97 diogan (bho 15.5 gu 27.7 togail san uair), agus mheudaich e cuideachd èifeachdas cleachdadh coraichean CPU aig co-chruinneachaidhean. Le togail mean air mhean, tha buaidh optimization eadhon nas follaisiche - tha an ùine airson an kernel ath-thogail às deidh atharrachaidhean a dhèanamh air na faidhlichean cinn air a dhol sìos gu mòr (bho 112% gu 173% a rèir am faidhle cinn a chaidh atharrachadh). Chan eil optimizations rim faighinn an-dràsta ach airson ailtireachd ARM64, MIPS, Sparc agus x86 (32- agus 64-bit).

Source: fosgailtenet.ru

Cuir beachd ann