HN 日本語サマリー

← 一覧へ戻る
プログラミング

Linuxカーネル7.2の開発統計

Development statistics for the 7.2 kernel (lwn.net)

117 pointsby farlight91 コメント

要約

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%

Google

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%

Google

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に注目してください。

この記事のインデックスエントリ

Kernel

Development tools/Large language models

Kernel

Releases/7.2