Arm inženieris Lorenzo Stoakes 8. septembrī nosūtīja kodola izstrādātāju sarakstam 23 ielāpu sēriju, kas paātrina Linux būvēšanu. Pilns allmodconfig būvējums pabeidzas aptuveni par 36 % ātrāk, inkrementāls būvējums pēc neliela labojuma līdz 70 % ātrāk, bet būvējums, kurā nekas nav mainījies, līdz 90 % ātrāk. Vietas, kur laiks pazuda, atrada liels valodas modelis.
Kodu, ko modelis uzrakstīja, Stoakes vērtē skarbi. Pavadvēstulē viņš atzīst, ka liela daļa bijusi neglīta un ka gala variantu pārrakstījis viņš pats. Sēriju pirmais aprakstīja Phoronix.
Vispirms LLM izmantoju, lai noteiktu, kur ir pudeles kakli. Pēc tam lai izdomātu, kā tos novērst. Tas saģenerēja daudz koda, liela daļa no tā neglīta. Es to plaši auditēju un daudz ko pārrakstīju, kā arī pamatīgi rediģēju komitu ziņojumus, pavadvēstuli un komentārus.
Kodols kompilējas paralēli, bet ne visu laiku
Komanda make -j64 izklausās pēc pilnas noslodzes. Kompilators tiešām aizņem visus kodolus, kamēr taisa objektu failus. Pēc tam būvējums iet caur virkni posmu, kas strādā vienā pavedienā. Tieši tiem šī sērija ķeras klāt.
Saraksts ir konkrēts. Tur ir kallsyms, kas pēc saites veido kodola simbolu tabulu. Ir modpost, kas apstaigā visu moduļu objektus un ģenerē to metadatus. Ir objtool, kas pārbauda ģenerēto kodu, mksysmap, kas taisa System.map, kā arī Rust puses būvēšanas soļi. Allmodconfig konfigurācijā, kur gandrīz katrs draiveris top kā modulis, šie posmi apstrādā desmitiem tūkstošu failu pēc kārtas. Pārējie kodoli tobrīd gaida.
Šie posmi neizskatās dārgi, kamēr uz tiem neskatās ar taimeri. Katrs no tiem pats par sevi aizņem sekundes vai dažas desmitsekundes. Uz mašīnas, kur kompilēšana ir jau sadalīta pa 64 kodoliem, secīgā aste sāk aizņemt manāmu daļu no kopējā laika. Amdāla likums šeit strādā pret izstrādātāju: jo vairāk kodolu iemet kompilēšanā, jo lielāku procentu no būvējuma aizņem tas, ko paralelizēt neviens nav mēģinājis.
Tukšā būvējuma 90 % ir tā paša stāsta gals. Ja pēc veiksmīga būvējuma palaiž make vēlreiz un nekas nav mainījies, make tomēr apstaigā koku un pārbauda atkarības. Šī pārbaude līdz šim lielā mērā gāja secīgi, tāpēc pat pilnīgi bezjēdzīgs būvējums prasīja jūtamu laiku.
Ko tas maina ikdienas darbā
Kodola izstrādātāja cikls parasti nav būvējums no nulles. Tas ir viena faila labojums, tad make, tad testa palaišana. Un tā desmitiem reižu dienā. Inkrementālā būvējuma 70 % nosēžas tieši šeit.
Otrs ieguvējs ir nepārtrauktās integrācijas mašīnas. Kodola CI sistēmas dienā izbūvē simtiem konfigurāciju. Allmodconfig starp tām ir viena no dārgākajām, jo tā ieslēdz teju visu, ko var ieslēgt. Uzturētājam, kurš gaida būvējuma rezultātu pirms ielāpa pieņemšanas, 36 % nozīmē to pašu aparatūru ar īsāku rindu.
Neviens no šiem skaitļiem neprasa jaunu dzelzi. Tie prasa, lai kodola būvēšanas rīki beidz gaidīt cits citu.
Assisted-by kodolā ir oficiāls tags kopš 7.0
Katrs sērijas komits nes Assisted-by tagu. Formātu Stoakes nav izdomājis. Dokumentu Documentation/process/coding-assistants.rst 2025. gada 23. decembrī kokā iekļāva Sasha Levin. Tas iznāca kopā ar Linux 7.0 šā gada aprīlī.
Dokuments nosaka divas lietas. Rīks nedrīkst pievienot Signed-off-by tagu, jo Developer Certificate of Origin var apliecināt tikai cilvēks. Ja rīks ir lietots, komita ziņojumā jābūt tagam formā Assisted-by: AGENT_NAME:MODEL_VERSION. Atbildība par kodu paliek tam, kurš to sūta, neatkarīgi no tā, kas kodu uzrakstīja.
Praksē tas nozīmē, ka tags neko neatļauj un neko neaizliedz. Tas tikai pasaka recenzentam, ar ko rēķināties. Ielāps ar Assisted-by tiek recenzēts pēc tiem pašiem kritērijiem, tikai recenzents zina, ka autors pats varētu nebūt katras rindas izcelsmes avots.
Stoakes pats prasīja, lai vispirms ir noteikumi
Pirms šī dokumenta bija strīds. Kad Levins pirmoreiz mēģināja iekļaut tagu ielāpus, Stoakes iebilda. LWN pierakstā no tās diskusijas viņš saka, ka kodolam vispirms vajag oficiālu AI politikas dokumentu. Viņš ierosināja to pārrunāt decembra Maintainers Summit sanāksmē. Vlastimil Babka toreiz piekrita, ka ielāpu iekļaušana bez politikas sūtītu kopienai nepareizu signālu.
Dokuments tagad ir. Stoakes to lieto pēc burta, sākot ar tagu katrā komitā līdz atklātam teikumam pavadvēstulē par to, cik daudz koda viņam nācās pārrakstīt.
Vienlaikus viņa pavadvēstule ir atgādinājums par to, ko šāda politika neatrisina. Ja modelis saģenerē daudz koda un cilvēks to pārraksta, uzturētājam joprojām jāizlasa katra rinda. Recenzenta laiks kodolā ir šaurākā vieta jau gadiem. Divdesmit trīs ielāpi to nesamazina, lai arī cik ātrs pēc tam būtu būvējums.
Kas notiek tālāk
Sērija ir pirmā versija un gaida atsauksmes rust-for-linux sarakstā. Kurš modelis to rakstīja, publiskajos atstāstos nav minēts.
Avoti
- Phoronix: AI Made A Lot Of “Hideous” Code But Found Major Bottlenecks For Faster Linux Compilation
- lore.kernel.org: build-speedup ielāpu sērija
- Linux kernel documentation: AI Coding Assistants
- LWN: On the use of LLM assistants for kernel development
- XDA Developers: AI helped a Linux developer find bottlenecks in the kernel
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.