programmatūra · 6 min · 18.08.2026

Con Kolivas atjauno -ck ielāpus pēc pieciem gadiem: MuQSS pievieno 14 666 rindas Linux 7.2 kodolam

Con Kolivas 17. augustā publicēja linux-7.2-ck1 ar MuQSS plānotāja versiju 0.310. Iepriekšējais -ck ielāpu kopums viņa blogā parādījās 2021. gada 28. aprīlī, tāpēc pauze ilga piecus gadus un gandrīz četrus mēnešus. Kodols 7.2 iznāca 16. augustā, tātad ielāpi bija gatavi nepilnas dienas laikā pēc mainline laidiena.

Salīdzinājums ar tīro 7.2 koku rāda 12 komitus, kas aizskar 135 failus: 14 666 pievienotas rindas pret 215 izdzēstām. Lielākā daļa ir viens fails. kernel/sched/MuQSS.c ir 10 778 rindas, tam pievienojas 1253 rindas galvas failā, 219 rindas atsevišķā Kconfig.MuQSS un 187 rindas paša skiplist koda.

ko dara MuQSS un kas tajā ir jauns

MuQSS aizstāj kodola plānotāju pilnībā. Kolivas to raksta no 2016. gada oktobra, pirms tam viņam bija BFS un vēl agrāk staircase. Gaidošos uzdevumus MuQSS tur skiplist struktūrā ar konfigurējamu rindu koplietošanu: jo vairāk loģisko kodolu dala vienu rindu, jo mazāka aizture, bet arī mazāka caurlaide. Mainline no CFS pārgāja uz EEVDF 6.6 laidienā. Kolivas pats savus plānotājus sauc par EEVDF konstrukcijām.

Galvenais jaunums v7.2-ck1 laidienā ir ievadizvades uzskaite plānotājā. Lasīšanas un rakstīšanas laiks tiek pieskaitīts tam uzdevumam, kas pieprasījumu izsauca. Darbu, ko kodola pavediens padara cita uzdevuma vietā, plānotājs tagad pieskaita atpakaļ šim uzdevumam. Šim kodam ir jauns fails block/blk-iotime.c ar 749 rindām. Otrs jaunums ir slodzes līdzsvarošana, kas ņem vērā P un E kodolus hibrīdajos procesoros. No 7.1 versijas Kolivas izmeta pavedienotos pārtraukumus, jo darbstacijās tie deva sliktāku rezultātu. Pārējais 7.2-ck1 saraksts ir labojumi aizmigšanai, hibernācijai, izslēgšanai un kodolu atslēgšanai darbības laikā.

-ck maina arī noklusējumus, kurus neviens lielais izplatījums nelieto. Taimera frekvence tiek atgriezta uz 100 Hz, kodols tiek būvēts kā izspiežams pēc noklusējuma, hrtimer granularitāte ir 100 µs un minimālā gaidīšana 500 µs, abas maināmas caur sysctl. Visi zemas vērtības schedule_timeout izsaukumi ir pārrakstīti uz hrtimer variantiem. Arī msleep tagad iet caur hrtimers.

Rindu koplietošana ir vieta, kur Kolivas ar mainline nesaskan visvairāk. 2023. gada novembra blogā viņš rakstīja, ka EEVDF virziens ir pareizs, taču mainline pārāk nelabprāt pārceļ uzdevumus no viena kodola uz otru, jo grib saglabāt keša siltumu. BFS bija viena rinda visiem kodoliem. MuQSS pārgāja uz vairākām rindām tikai tāpēc, ka viena rinda nemērogojas uz lieliem serveriem. Turpat Kolivas nosauca savu minējumu par optimālo grupas lielumu: līdz aptuveni 16 pavedieniem vienā rindā, ja tie dala vismaz kādu keša līmeni.

atgriešanās iemesls ir valodas modelis

Kolivas pats paskaidro, kāpēc atsāka. Vēstulē kodola izstrādātāju sarakstā, ko citē Phoronix, viņš raksta par diviem iemesliem: laika trūkumu tad un jaunu rīku tagad.

Pagājuši desmit gadi, kopš laika trūkuma dēļ pametu ielāpu kopumu, bet valodas modeļi ir padarījuši sapludināšanu un izstrādi bezgala vienkāršāku.

Blogā 12. augustā viņš nosauc konkrētu rīku. Viņam pietrūkuši -ck uzlabojumi, bet Claude AI darba apjomu esot samazinājis līdz nelielai daļai no agrākā. GitHub laidienu vēsture rāda, ka atsākšana nav vienreizējs vēziens: v7.1-ck1 11. augustā, ck2 13. augustā, ck3 un v7.2-ck1 17. augustā ar stundas atstarpi. Divos no 12 komitiem autora datums joprojām ir 2016. gada decembris, jo tie ir vecie ielāpi bez izmaiņām.

desmit gadi blogā izskatās pēc pieciem

Skaitlis vēstulē neatbilst blogam. ck-hack.blogspot.com arhīvā pēdējais -ck ieraksts pirms šā augusta ir linux-5.12-ck1 ar MuQSS 0.210, publicēts 2021. gada 28. aprīlī. Pēc tā vēl nāca 2021. gada 31. augusta ieraksts par MuQSS nākotni. Versiju numuri stāsta to pašu: 0.210 bija pēdējais pirms pauzes, pēc pauzes uzreiz nāca 0.300. Desmit gadi sanāk tikai tad, ja skaita no MuQSS pirmās versijas 2016. gada oktobrī.

Divas dienas pirms 7.2-ck1 blogs gandrīz pazuda. 15. augustā Kolivas ierakstīja, ka neviens to vairs nelasa, tāpēc viņš pārtrauks rakstīt un vēlāk to izdzēsīs. Kā vietu, kur viņu atrast, viņš norādīja savu X kontu ar brīdinājumu, ka tur galvenokārt ir bitkoins. Divas dienas vēlāk viņš lēmumu atsauca ar piezīmi, ka blogam vēl ir pietiekami daudz lasītāju.

kodolā jau ir veids, kā mainīt plānotāju bez ielāpiem

Kolivas kodu mainline nesūta. Phoronix to skaidro ar viņa neapmierinātību par kodola izstrādes procesu, kas velkas divas desmitgades. Tikmēr mainline ir ienācis mehānisms tai pašai vajadzībai. sched_ext, ko Phoronix aprakstīja 2024. gadā līdz ar Linux 6.12, ļauj plānošanas politiku uzrakstīt kā BPF programmu un nomainīt to darbības laikā bez pārstartēšanas. scx_lavd mērķis ir stabils kadru skaits spēlēs, scx_bpfland dzenas pēc mazāka atbildes laika. Tie ir tie paši uzdevumi, kuru dēļ savulaik radās BFS.

Praktiskā atšķirība ir uzstādīšanā. Ar sched_ext lietotājs paliek uz izplatījuma kodola un maina plānotāju kā parastu programmu. Ar -ck viņam kodols jābūvē pats. Toties MuQSS 0.310 aiztiek 135 failus visā kokā, tostarp fs/proc/base.c un include/linux/sched.h, ko BPF programma neaizsniegs. Kolivas pats 7.1-ck1 ierakstā brīdināja, ka ielāpi ir tikai viegli pārbaudīti un uz citām konfigurācijām var nesabūvēties.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie