Fast Kernel Headers, saitin faci waɗanda ke hanzarta tattara kernel da 50-80%

Ingo Molnar, sanannen mai haɓaka kernel na Linux kuma marubucin CFS Task Scheduler da aka ba da shawarar don tattaunawa game da jerin abubuwan ci gaban kernel na Linux ɗimbin faci, yana shafar fiye da rabin duk fayilolin da ke cikin tushen kernel da samar da haɓakar saurin sake gina kwaya na 50 -80% dangane da ƙayyadaddun tsari.

An aiwatar da ingantawa sananne ne a cikin cewa yana da alaƙa da ƙari mafi girma canje-canje a cikin tarihin ci gaban kwaya: sun tashi don haɗa faci 2297 a lokaci ɗaya, suna canza fayiloli sama da dubu 25.

Ribar aiki Ana samun nasara ta hanyar canza hanyar sarrafa fayil ɗin kai. Ya kamata a lura da cewa a cikin shekaru talatin na ci gaban kwaya, yanayin fayilolin rubutun ya ɗauki mummunan yanayi saboda kasancewar yawan adadin dogara tsakanin fayiloli.

Sake fasalin fayilolin kan kai ya ɗauki sama da shekara guda kuma ya buƙaci gagarumin sake fasalin matsayi da abin dogaro. Yayin sake fasalin, an yi aiki don raba nau'ikan ma'anoni da APIs don mabambantan tsarin kernel.

Na yi farin cikin sanar da sigar jama'a ta farko ta sabon aikina na "Fast Kernel Headers" wanda nake aiki da shi tun daga ƙarshen 2020, wanda shine cikakkiyar sake fasalin tsarin kula da kernel na Linux da masu dogaro da kai, tare da manufar biyu:

- Haɓaka ginin kernel (duka cikakkun lokutan ginawa da ƙari)

- type decoupling na subsystem da API ma'ana daga juna

Kamar yadda yawancin masu haɓaka kernel suka sani, akwai kusan ~ 10,000 main .h headers a cikin Linux kernel, a cikin haɗa / da arch / * / haɗawa / matsayi. A cikin shekaru 30+ da suka gabata, sun rikide zuwa wani tsari mai rikitarwa kuma mai raɗaɗi na abubuwan dogaro waɗanda muke kira da ƙauna da 'Dependency Jahannama'.

Daga cikin sauye-sauyen da aka yi akwai: Ware manyan fayiloli na kai daga juna, keɓance ayyukan layi da ke haɗa fayilolin kan kai, taswirar fayilolin kai don nau'ikan da APIs, samar da saitin fayiloli daban-daban (kimanin fayilolin 80 suna da abubuwan dogaro kai tsaye waɗanda ke tsoma baki tare da taro, fallasa ta wasu fayilolin taken fayilolin), ƙari ta atomatik na abubuwan dogaro ga Fayilolin ".h" da ".c", haɓaka mataki-mataki na fayilolin kan kai, amfani da yanayin "CONFIG_KALLSYMS_FAST = y", zaɓin ƙarfafa fayilolin C cikin tubalan taro don rage adadin fayilolin abu.

A sakamakon haka, aikin da aka yi ya ba da izinin rage girman fayilolin rubutun da aka sarrafaa cikin mataki na gaba-gaba ta hanyar oda 1-2 na girma.

  • Misali, kafin ingantawa, ta yin amfani da fayil ɗin taken "linux / gfp.h" ya haifar da ƙarin layukan layukan 13543 da haɗa fayilolin da suka dogara da 303, kuma bayan haɓakawa an rage girman zuwa layin 181 da fayilolin dogara 26.
  • Wani misali: aiwatar da fayil ɗin "kernel / pid.c" wanda ba a buɗe yana haɗa layin lamba 94, yawancin waɗanda ba a amfani da su a cikin pid.c. Rarraba fayilolin kan kai ya ba mu damar rage adadin lambobin da aka sarrafa sau uku, tare da rage adadin layin da aka sarrafa zuwa 36.

Lokacin da aka sake gina kwaya gaba ɗaya tare da umarnin "make -j96 vmlinux" akan tsarin gwajin, facin ya nuna raguwar lokacin tattara reshe na v5.16-rc7 daga 231,34 zuwa 129,97, 15,5 seconds (daga 27,7 zuwa XNUMX yana ginawa kowane ɗayan. hour) kuma yana haɓaka ingantaccen amfani da CPU core yayin ginawa.

Tare da tarin haɓakawa, tasirin ingantawa ya fi sananne: lokacin da za a sake gina kwaya bayan yin canje-canje ga fayilolin taken ya ragu sosai (daga 112% zuwa 173%, dangane da fayil ɗin taken da aka canza) .

Ana samun haɓakawa a halin yanzu don ARM64, MIPS, Sparc, da x86 (32-bit da 64-bit) gine-gine.

Da kyau idan kuna sha'awar ƙarin sani game da shi, zaku iya bincika cikakkun bayanai a cikin bin hanyar haɗi.


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.