Ontwikkelingsstatistieken voor de 7.2-kernel

Linus Torvalds bracht op 17 augustus de 7.2-kernel uit, nadat hij opmerkte dat het aantal fixes dat binnenkwam nog steeds "groter was dan ik zou hebben gewenst". In feite was 7.2 een van de drukste ontwikkelingscycli in de geschiedenis van de kernel, waarbij bijna 600.000 regels code werden toegevoegd. Het is tijd om naar enkele statistieken te kijken om inzicht te krijgen in hoe de ontwikkelingsgemeenschap van de kernel verandert.

Er werden 16.418 non-merge commits toegevoegd aan de mainline voor de 7.2-release, waarmee de (al drukke) 7.1-release werd overtroffen. Het is feitelijk de op één na drukste release in de geschiedenis van de kernel. Alleen de 6.7-release bracht meer commits voort, maar terwijl 6.7 gedomineerd werd door het samenvoegen van de bcachefs-ontwikkelingsgeschiedenis, is het volume voor 7.2 breder gespreid.

Deze commits werden bijgedragen door 2.652 ontwikkelaars, een aanzienlijke stijging ten opzichte van het vorige record (2.479 in 7.1). Als men kijkt naar de geschiedenis van de betrokkenheid van ontwikkelaars sinds het begin van het Git-tijdperk, is de trend duidelijk: het aantal ontwikkelaars dat bijdraagt aan elke release neemt in de loop der tijd toe. De helling van die lijn is echter duidelijk veranderd.

Actieve ontwikkelaars in versie 7.2

De meest actieve ontwikkelaars die aan 7.2 hebben gewerkt, waren:

Op basis van changesets

OntwikkelaarAantalPercentage
Uwe Kleine-König1510.9%
Rosen Penev1460.9%
Ian Rogers1380.8%
Johan Hovold1330.8%
Arnaldo Carvalho de Melo1310.8%
Chuck Lever1290.8%
Eric Dumazet1210.7%
Ville Syrjälä1150.7%
Johannes Berg1120.7%
Krzysztof Kozlowski1100.7%
Thorsten Blum1080.7%
Namjae Jeon1060.6%
Christoph Hellwig1040.6%
Sean Christopherson1000.6%
Jakub Kicinski960.6%
SJ Park940.6%
Mike Rapoport910.6%
Dmitry Baryshkov870.5%
Eric Biggers860.5%
Rafael J. Wysocki780.5%

Op basis van gewijzigde regels

OntwikkelaarRegelsPercentage
Matthew Stewart835878.4%
Hawking Zhang628936.3%
Miguel Ojeda389793.9%
Ian Rogers319493.2%
Darren Ye208432.1%
Ethan Nelson-Moore168931.7%
Harry Wentland152331.5%
Uwe Kleine-König138031.4%
Ingo Molnar136491.4%
Chuck Lever101721.0%
Eric Biggers100671.0%
Jakub Kicinski94490.9%
Rodrigo Siqueira77490.8%
Johannes Berg71100.7%
Arnd Bergmann70850.7%
Emil Tsalapatis68100.7%
Vivek Aknurwar65440.7%
Rob Clark64900.6%
Sabrina Dubroca64010.6%
Svyatoslav Ryhel60720.6%

Uwe Kleine-König was de grootste bijdrager van commits aan de 7.2-release met opschoningstaken via het driver-subsystem. Rosen Penev droeg een lange lijst bij van door LLM's geschreven bugfixes in onder andere de architectuur-specifieke, driver, netwerk- en crypto-subsystemen. Ian Rogers en Arnaldo Carvalho de Melo werkten uitgebreid aan de user-space perf-tool. Johan Hovold bracht talloze verbeteringen aan, voornamelijk in de SPI- en USB-subsystemen.

Matthew Stewart bereikte de top van de kolom met gewijzigde regels door de tijdloze traditie van het toevoegen van massieve, machine-gegenereerde amdgpu-headerbestanden; Hawking Zhang deed hetzelfde. Miguel Ojeda bracht de Rust zerocopy crate in de kernbroncode. Darren Ye voegde de MediaTek mt8196 sound-driver toe.

Testen en reviews

Iets meer dan 8% van de commits in 7.2 bevatten Tested-by tags, terwijl 48% Reviewed-by tags bevatte. Vooral de review-tags vertonen in recente releases een lichte dalende trend. Het is onduidelijk of deze daling een daadwerkelijke afname weerspiegelt van de hoeveelheid reviews die plaatsvinden.

De meest actieve testers en reviewers voor deze cyclus waren:

Test- en review-credits in 7.2

Tested-by

  • Dan Wheeler: 117 (7.0%)
  • Luiz Capitulino: 54 (3.2%)
  • James Clark: 44 (2.6%)
  • Sarthak Sharma: 44 (2.6%)
  • Venkat Rao Bagalkote: 32 (1.9%)
  • Tommaso Merciai: 27 (1.6%)
  • David Riley: 27 (1.6%)
  • Jie Gan: 27 (1.6%)
  • Geert Uytterhoeven: 25 (1.5%)
  • Arthur Kiyanovski: 25 (1.5%)
  • Marek Szyprowski: 25 (1.5%)
  • Randy Dunlap: 24 (1.4%)
  • Shivaprasad G Bhat: 24 (1.4%)
  • Rinitha S: 21 (1.3%)
  • Vitaly Prosyak: 20 (1.2%)

Reviewed-by

  • Konrad Dybcio: 231 (2.2%)
  • Dmitry Baryshkov: 225 (2.1%)
  • Andy Shevchenko: 175 (1.7%)
  • Geert Uytterhoeven: 171 (1.6%)
  • Krzysztof Kozlowski: 152 (1.5%)
  • Frank Li: 147 (1.4%)
  • Ilpo Järvinen: 145 (1.4%)
  • Christoph Hellwig: 143 (1.4%)
  • Jan Kara: 121 (1.2%)
  • Christian König: 120 (1.1%)
  • Linus Walleij: 116 (1.1%)
  • Alex Deucher: 105 (1.0%)
  • Simon Horman: 102 (1.0%)
  • Jeff Layton: 101 (1.0%)
  • Ido Schimmel: 94 (0.9%)

Dan Wheeler is, zoals altijd, de top tester dankzij zijn werk met AMD graphics-driver patches. Aan de review-kant voegde Konrad Dybcio zijn tag toe aan 231 wijzigingen, terwijl Dmitry Baryshkov er 225 tagde; deze twee, die zich beiden richten op drivers en devicetree-bestanden voor Qualcomm-apparaten, stonden ook bovenaan de lijst voor de 7.1-cyclus.

Betrokken werkgevers

Het werk aan de 7.2-kernel werd ondersteund door 249 identificeerbare werkgevers.

Meest actieve werkgevers in 7.2

Op basis van changesets

  • (Onbekend): 274 (31.6%)
  • Intel: 151 (29.2%)
  • Google: 119 (17.3%)
  • Red Hat: 87 (35.3%)
  • AMD: 81 (35.0%)
  • Qualcomm: 76 (74.7%)
  • (Geen): 74 (34.5%)
  • NVIDIA: 53 (53.3%)
  • Meta: 44 (12.7%)
  • (Consultant): 42 (92.6%)
  • SUSE: 35 (82.2%)
  • Renesas Electronics: 32 (82.0%)
  • IBM: 30 (71.9%)
  • Kylin: 27 (81.7%)
  • NXP Semiconductors: 26 (41.6%)
  • Oracle: 24 (51.5%)
  • Arm: 22 (21.4%)
  • BayLibre: 20 (31.2%)
  • Microsoft: 20 (11.2%)
  • Bootlin: 19 (41.2%)

Op basis van gewijzigde regels

  • AMD: 224121 (22.4%)
  • (Onbekend): 103861 (10.4%)
  • Google: 102565 (10.3%)
  • Qualcomm: 59021 (5.9%)
  • Intel: 53661 (5.4%)
  • Red Hat: 51559 (5.2%)
  • Meta: 38635 (3.9%)
  • (Geen): 28218 (2.8%)
  • NVIDIA: 27417 (2.7%)
  • MediaTek: 22025 (2.2%)
  • NXP Semiconductors: 17692 (1.8%)
  • BayLibre: 15972 (1.6%)
  • Oracle: 12233 (1.2%)
  • Microsoft: 11786 (1.2%)
  • Renesas Electronics: 11103 (1.1%)
  • Linaro: 10209 (1.0%)
  • (Consultant): 9362 (0.9%)
  • IBM: 9205 (0.9%)
  • Texas Instruments: 8398 (0.8%)
  • SUSE: 8350 (0.8%)

De meest significante verandering is waarschijnlijk de aanzienlijke toename van ontwikkelaars met een onbekende affiliatie. Dit is ten minste gedeeltelijk een reflectie van de voortdurende stroom nieuwe ontwikkelaars die de kernelgemeenschap betreden.

Nieuwe ontwikkelaars en hun tools

Elk van de twee vorige kernel-releases zette een record voor het aantal first-time ontwikkelaars; 7.2 heeft dat record opnieuw gebroken met 613 bijdragers die hier eerder niet waren gezien.

De meest actieve nieuwe ontwikkelaar was Bryam Vargas, die 43 commits bijdroeg om problemen op te lossen in onder andere de input, NVMe, F2FS, AppArmor, Landlock, SELinux, NTFS, WiFi, ATA, SCSI, netwerk, Ceph en Thunderbolt subsystems. Zoals eerder is opgemerkt, zou het voor een ervaren kernelontwikkelaar moeilijk zijn om in één ontwikkelingscyclus zo diep in zoveel subsystems te duiken — althans, als ze wilden begrijpen wat ze deden. Dat een voorheen onbekende ontwikkelaar dit doet, is op zijn minst verrassend. De patches van Vargas bevatten echter geen Assisted-by tags, dus we moeten aannemen dat dit werk zonder LLM-assistentie is gedaan.

In totaal bevatten 1.111 wijzigingen in 7.2 (minder dan 7% van het totaal) Assisted-by tags — een aanzienlijke stijging ten opzichte van de 301 in 7.1. Het werkelijke aantal LLM-ondersteunde patches in 7.2 moet echter zeker veel hoger liggen. Veel ontwikkelaars leveren deze tags niet aan (vaak uit onwetendheid over de regels), maintainers vragen zelden naar LLM-gebruik, en ten minste één maintainer verwijdert deze tags actief bij het toepassen van patches. Het accuraat bijhouden van commits die met LLM-assistentie zijn ontwikkeld, is mogelijk onmogelijk, maar het voelt soms alsof de kernelgemeenschap er niet genoeg om geeft om het echt te proberen.

Een andere manier waarop LLM-gebruik voelbaar is in de kernelontwikkeling, is bij de review van patches. Er zijn 252 patches in 7.2 met Reported-by tags die het Sashiko-reviewsysteem crediteren; 568 commits noemen Sashiko in hun changelogs. Ook andere LLM's worden duidelijk gebruikt om kernelbugs te vinden, met reële effecten.

De 7.2-release bevat 4.830 commits met Fixes tags, wat aangeeft dat ze een bug oplossen die door een eerdere commit is geïntroduceerd. Het opvallende deel van de statistieken is de rechterkant van de grafieken, waar het aantal commits met Fixes tags dramatisch toeneemt, nadat het voor vrijwel alle vorige releases ongeveer gelijk was gebleven. Dat is blijkbaar wat er gebeurt zodra grote groepen mensen LLM's gaan inzetten voor het vinden van bugs in bestaande software.

Dit is een interessante trend om in de gaten te houden. Het aantal bugs kan niet oneindig zijn — zelfs niet in de kernel — dus het tempo van bugdetectie en -oplossing moet uiteindelijk dalen. De bestaande bugs zullen zijn opgelost, en LLM-reviews zullen het aantal nieuw geïntroduceerde bugs hebben verminderd. Dat is in ieder geval de hoop.

Als die daling niet optreedt, rijzen er interessante vragen. Het lijkt redelijk duidelijk dat de verspreiding van LLM's mensen in staat heeft gesteld om kernel-patches te maken die ze daarvoor niet konden maken. Als dat waar is, is het niet veelzeggend om te concluderen dat de indieners van deze patches in veel gevallen niet volledig begrijpen wat die patches doen. Misschien zijn LLM's goed genoeg dat dit begrip niet langer nodig is, maar het zou ook kunnen dat we een stapel code creëren die niemand echt heeft begrepen, maar die in de komende jaren onderhouden moet worden.

De Linux-kernel is bedoeld voor productiegebruik, niet voor onderzoek of experimenten. Maar er wordt momenteel een massaal experiment uitgevoerd op de ontwikkelingsprocessen en de gemeenschap van de kernel. Deze gemeenschap heeft in haar 35-jarige geschiedenis al vele malen nieuwe processen en tools geabsorbeerd, en zal dat deze keer vrijwel zeker ook doen. Maar die absorptie is niet altijd zonder turbulentie verlopen.

Ondertussen liggen er bijna 14.000 non-merge changesets in de linux-next repository, klaar om te worden opgehaald voor de 7.3-release; meer dan 1.100 daarvan bevatten Assisted-by tags. Het lijkt erop dat het hoge activiteitsniveau dat recente releases kenmerkt, niet zo snel zal eindigen.