Linuxカーネル7.2の開発統計
Development statistics for the 7.2 kernel (lwn.net)
要約
Linuxカーネル7.2の開発サイクルは、過去数年で最も活発な部類に入り、過去最多の開発者数と2番目に多いコミット数を記録しました。特に新規開発者の参加が顕著で、LLM(大規模言語モデル)の利用も増加傾向にありますが、その正確な追跡は課題となっています。レビューやテストのタグ付けには若干の減少傾向が見られます。
全文翻訳
Linuxカーネル7.2の開発統計
Linus Torvaldsは8月17日にカーネル7.2をリリースしましたが、その際、修正の数が「望んでいたよりも多かった」と述べています。実際、7.2はカーネル史上最も忙しい開発サイクルの1つであり、約60万行のコードが追加されました。カーネルの開発コミュニティがどのように変化しているかを把握するために、いくつかの統計を見てみましょう。
7.2リリースには、メインラインに16,418件の非マージコミットが取り込まれました。これは(すでに忙しかった)7.1リリースを上回っており、カーネル史上2番目に忙しいリリースです。より多くのコミットを取り込んだのは6.7リリースだけですが、6.7がbcachefs開発履歴のマージに占められていたのに対し、7.2のボリュームはより広範な基盤に基づいています。
これらのコミットは2,652人の開発者によって提供されました。これは、以前の記録(7.1の2,479人)から大幅な増加です。Git時代開始以降の開発者参加の履歴を見ると、結果は以下のようになります。
[画像: [Line plot of developers per release]]
(このプロットは、ここにある情報の多くと同様に、購読者限定のLWN Kernel Source Databaseから来ています)。この履歴全体を通して、明確な傾向があります。各リリースに貢献する開発者の数は時間とともに増加しています。しかし、その直線の傾きは明らかに変化しています。
7.2で最も活発に活動した開発者は以下の通りです。
Most active 7.2 developers
By changesets
Uwe Kleine-König
151
0.9%
Rosen Penev
146
0.9%
Ian Rogers
138
0.8%
Johan Hovold
133
0.8%
Arnaldo Carvalho de Melo
131
0.8%
Chuck Lever
129
0.8%
Eric Dumazet
121
0.7%
Ville Syrjälä
115
0.7%
Johannes Berg
112
0.7%
Krzysztof Kozlowski
110
0.7%
Thorsten Blum
108
0.7%
Namjae Jeon
106
0.6%
Christoph Hellwig
104
0.6%
Sean Christopherson
100
0.6%
Jakub Kicinski
96
0.6%
SJ Park
94
0.6%
Mike Rapoport
91
0.6%
Dmitry Baryshkov
87
0.5%
Eric Biggers
86
0.5%
Rafael J. Wysocki
78
0.5%
By changed lines
Matthew Stewart
83587
8.4%
Hawking Zhang
62893
6.3%
Miguel Ojeda
38979
3.9%
Ian Rogers
31949
3.2%
Darren Ye
20843
2.1%
Ethan Nelson-Moore
16893
1.7%
Harry Wentland
15233
1.5%
Uwe Kleine-König
13803
1.4%
Ingo Molnar
13649
1.4%
Chuck Lever
10172
1.0%
Eric Biggers
10067
1.0%
Jakub Kicinski
9449
0.9%
Rodrigo Siqueira
7749
0.8%
Johannes Berg
7110
0.7%
Arnd Bergmann
7085
0.7%
Emil Tsalapatis
6810
0.7%
Vivek Aknurwar
6544
0.7%
Rob Clark
6490
0.6%
Sabrina Dubroca
6401
0.6%
Svyatoslav Ryhel
6072
0.6%
Uwe Kleine-König
[KSDB] は、ドライバサブシステムを通じたクリーンアップで、7.2リリースへのコミット貢献者として最大でした。Rosen Penev
[KSDB] は、アーキテクチャ固有、ドライバ、ネットワーキング、暗号化サブシステムなどにわたる、LLM作成のバグ修正を多数提供しました。Ian Rogers
[KSDB] は、Arnaldo Carvalho de Melo
[KSDB] と同様に、ユーザースペースのperfツールに広範囲にわたって取り組みました。Johan Hovold
[KSDB] は、主にSPIおよびUSBサブシステムで数多くの改善を行いました。
Matthew Stewart
[KSDB] は、伝統的な手法である、大規模な機械生成されたamdgpuヘッダーファイルの追加により、変更行数でトップに立ちました。Hawking Zhang
[KSDB] も同様でした。Miguel Ojeda
[KSDB] は、Rustのzerocopyクレートをカーネルソースに取り込みました。Darren Ye
[KSDB] は、MediaTek mt8196サウンドドライバを追加しました。
7.2のコミットの8%強がTested-byタグを付けており、48%がReviewed-byタグを含んでいました。特にレビュータグは、最近のリリースでわずかに減少傾向を示しています。
[画像: [Reviewed-by tags per release]]
この減少が、実際に行われているレビュー量の低下を反映しているかどうかは、せいぜい不明です。いずれにせよ、このサイクルで最も活発なテスターとレビュアーは以下の通りです。
Test and 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
[KSDB] は、AMDグラフィックスドライバパッチでの作業のおかげで、常にトップテスターです。レビュー側では、Konrad Dybcio
[KSDB] が231件の変更にタグを追加し、Dmitry Baryshkov
[KSDB] は225件にタグ付けしました。両者ともQualcommデバイスのドライバやデバイストリーファイルに焦点を当てる傾向があり、7.1サイクルでもこのリストのトップでした。
7.2の開発は、特定できた249の雇用主によってサポートされていました。その中で最も活発だったのは以下の通りです。
Most active 7.2 employers
By changesets
(Unknown)
2743
16.7%
Intel
1512
9.2%
1191
7.3%
Red Hat
873
5.3%
AMD
813
5.0%
Qualcomm
767
4.7%
(None)
743
4.5%
NVIDIA
535
3.3%
Meta
441
2.7%
(Consultant)
429
2.6%
SUSE
358
2.2%
Renesas Electronics
328
2.0%
IBM
307
1.9%
Kylin
278
1.7%
NXP Semiconductors
264
1.6%
Oracle
245
1.5%
Arm
222
1.4%
BayLibre
203
1.2%
Microsoft
201
1.2%
Bootlin
194
1.2%
By lines changed
AMD
224121
22.4%
(Unknown)
103861
10.4%
102565
10.3%
Qualcomm
59021
5.9%
Intel
53661
5.4%
Red Hat
51559
5.2%
Meta
38635
3.9%
(None)
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%
今回最も注目すべき変化は、所属不明の開発者が大幅に増加したことです。これは、少なくとも部分的には、カーネルコミュニティに新規参入する開発者の洪水が続いていることを反映しています。
新規開発者とそのツール
過去2回のカーネルリリースはいずれも、初めて貢献する開発者の数で記録を更新していましたが、7.2では613人の新規貢献者
[KSDB] により、その記録が再び破られました。ここでも、傾向は明らかです。
[画像: [First-time developers by release]]
最も活発な新規開発者はBryam Vargas
[KSDB] でした。彼は、入力、NVMe、F2FS、AppArmor、Landlock、SELinux、NTFS、WiFi、ATA、SCSI、ネットワーキング、Ceph、Thunderboltサブシステムなど、多数のサブシステムの問題を修正する43件のコミットを提供しました。ここで以前に観察されたように、経験豊富なカーネル開発者が単一の開発サイクルでこれほど多くのサブシステムに深く入り込むのは難しいでしょう――少なくとも、彼らが何をしているかを理解したいのであれば。未知の開発者がこれを行うのは、驚くべきことと言わざるを得ません。Vargas氏のパッチにはAssisted-byタグが付いていませんが、LLMの支援なしでこの作業が行われたと信じるしかありません。
全体として、7.2の変更のうち1,111件(全体の7%未満)にはAssisted-byタグが付いていました。これは7.1の301件から大幅な増加です。しかし、7.2のLLM支援パッチの実際の数は、はるかに高いはずです。多くの開発者はこれらのタグを提供していません(しばしば、ルールの知識不足からですが、必ずしもそうではありません)。メンテナーはLLMの使用について尋ねることはめったになく、少なくとも1人のメンテナーはパッチを適用する際にそれらのタグを積極的に削除しています。LLM支援で開発されたコミットを正確に追跡することは不可能かもしれませんが、カーネルコミュニティはそれを試みるほど気にかけていないように感じられることがあります。
LLMの使用がカーネル開発に影響を与えているもう一つの方法は、パッチレビューの分野です。7.2には、Sashikoレビューシステム
[KSDB] をクレジットするReported-byタグが付いたパッチが252件あります。変更ログにはSashikoが568件のコミットで言及されています。他のLLMもカーネルのバグ発見に明らかに利用されており、実際的な影響が出ています。
7.2リリースには、以前のコミットによって導入されたバグを修正したことを示すFixesタグが付いたコミットが4,830件含まれています。その増加がいかに大きいかを見るために、以前にもここで見られた(最も最近では6.17開発サイクル用)プロットの更新版を考えてみましょう。
[画像: [Fixes tags for 7.2]]
太い緑の線は各リリースに含まれるFixesタグ付きコミット数を示し、太い茶色の線は後続のコミットでFixesタグによって特定されたコミット数を示しています。交差点は5.9にあり、そのリリース時点ではカーネルコミュニティは導入したバグよりも多くのバグを修正し始めたことを示唆しています。しかし、その結論は持続しません。5.9以降のバグがすべて特定され修正されるには何年もかかり、その線は発生とともにシフトします。
しかし、プロットで注目すべきは右端です。数回のリリースでほぼ横ばいだった後、Fixesタグが付いたコミットの数が劇的に増加しています。これは、多数の人々が既存のソフトウェアのバグ発見タスクにLLMを向け始めた結果のようです。これは興味深い傾向であり、注目に値します。バグの数は無限ではありません――カーネルであっても――したがって、バグ検出と修正の速度は最終的に低下しなければなりません。既存のバグは修正され、LLMレビューは導入される新しいバグの数を減らすでしょう。少なくとも、それが希望です。
もしその低下が起こらない場合、興味深い質問に答える必要が出てくるでしょう。LLMの普及により、以前は不可能だった人々がカーネルパッチを作成できるようになったことは、かなり明確に思われます。もしそれが真実なら、多くの場合、これらのパッチの提出者は、それらのパッチが何をするのかを完全に理解していないと結論付けるのは、それほど大きな飛躍ではありません。おそらくLLMは十分に優れているため、この理解はもはや必要ないのかもしれませんが、誰も本当に理解したことのないコードの山を作り出しており、それが今後数年間メンテナンスされる必要があるという可能性もあります。
Linuxカーネルは、研究や実験ではなく、本番用途を目的としています。しかし、現在、カーネルの開発プロセスとコミュニティで大規模な実験が行われています。このコミュニティは、35年の歴史の中で何度も新しいプロセスやツールを吸収してきましたが、今回もほぼ間違いなくその方法を見つけるでしょう。しかし、その吸収は、常に円滑に進んできたわけではありません。
一方、linux-nextリポジトリには約14,000件の非マージ変更セットがあり、7.3リリースに向けて取り込まれる予定です。そのうち1,100件以上にはAssisted-byタグが付いています。最近のリリースを特徴づけてきた高い活動レベルは、すぐには終わらないようです。いつものように、次の開発サイクル(およびそれ以降)を追うLWNに注目してください。
この記事のインデックスエントリ
Development tools/Large language models