LWN: 5.16内核开发的数据!
关注了就能看到更多这么棒的文章哦~
Some 5.16 kernel development statistics
By Jonathan Corbet
January 10, 2022
DeepL assisted translation
https://lwn.net/Articles/880699/
5.16 内核按原计划成功地在 1 月 9 日完成了发布。这个开发周期中包含了 1,988 个开发者的 14,190 个改动,因此,它比前一个版本要繁忙很多,整体来说跟近期的几个内核版本差不多。有了新的版本之后,就意味着现在应该来看看这些改动来自哪里了。
为 5.16 做出贡献的 1,998 名开发者是有史以来第二高的数字,只有 5.13(有 2,062 名开发者)版本比它高。这一次,有 296 名开发者为内核贡献了他们的第一次修改,这属于正常范围中的较高数字了。本周期中最活跃的开发者是:
Most active 5.16 developers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
在 5.16 版本中贡献最多的是 Michael Straube,他的几乎所有改动都是在 staging tree 中的 r8188eu 无线网络适配器驱动程序里。自 5.15 版本把它合并进来之后,该驱动程序已经进行了 755 次改动。Cai Huoqing 给内核的许多位置提供了清理 patch,Jakub Kicinski 对整个网络子系统进行了改进,Christoph Hellwig 继续在 block 和文件系统层的重构工作,Bart Van Assche 重写了许多 SCSI 子系统的代码。
在改动行数方面,Ping-Ke Shih 因添加了 Realtek rtw89 驱动而名列前茅。与过去许多 Realtek 驱动不同,这个驱动跳过了 staging tree,直接进入了 drivers/net。Zhan Liu 贡献了两个 patch 来增加了又一组 amdgpu 头文件。Nick Terrell 更新了内核的 zstd 压缩模块,Sameer Pujar 增加了一套 NVIDIA Tegra 声音驱动,Johan Almbladh 为 32 和 64 位 MIPS 架构增加了 eBPF JIT 编译器。值得注意的是,在 5.16 中,相对来说很少有大块代码删除的动作(最大的就是 Thomas Bogendoerfer 删除了 Netlogic MIPS 支持),所以内核整体来说增加了 422,000 行。
内核项目很依赖于它的 test 人员和 review 人员,就跟它有多么依赖开发者是一样的。在 5.16 周期中,拥有最多 test 和 review 功劳的贡献者是:
Test and review credits in 5.16
Tested-by Daniel Wheeler 153 14.8% Sandeep Penigalapati 34 3.3% Tony Brelinski 25 2.4% Deren Wu 24 2.3% Gurucharan G 22 2.1% Sohaib Mohamed 22 2.1% Konrad Jankowski 20 1.9% Alexei Starovoitov 16 1.5% Mark Wunderlich 14 1.4% John Garry 13 1.3% Christian Zigotzky 13 1.3% Fuad Tabba 12 1.2% Shawn Guo 12 1.2% Geert Uytterhoeven 10 1.0% Ferry Toth 10 1.0%
Reviewed-by Christoph Hellwig 202 3.2% Rob Herring 194 3.0% Hans de Goede 119 1.9% Pierre-Louis Bossart 104 1.6% Stephen Boyd 100 1.6% David Howells 83 1.3% David Sterba 80 1.2% Jani Nikula 77 1.2% Christian König 74 1.2% Andrew Lunn 68 1.1% Jan Kara 60 0.9% Kai Vehmanen 60 0.9% Kees Cook 58 0.9% Florian Fainelli 57 0.9% Linus Walleij 55 0.9%
Daniel Wheeler 再次成为 test 排行榜的榜首,在 5.16 开发周期中,他的工作占了所有 test 的 15%。这意味着每天有两个以上的 patch 被测试。这里说的每天还包括了周末和假期。Wheeler 的这些测试似乎是作为他所在公司的内部 review 流程的一部分,其他许多排在前列的 test 人员也是如此。相反,名列前茅的 review 人员往往是活跃的开发者,他们也设法完成了大量的 review 工作。5.16 版本 review 列表前两名与 5.15 版本时相同。Christoph Hellwig 在 5.16 版本 70 天的开发周期中,每天都要 review 三个 patch 并自己写两个 patch。
另一种 review 是来自于选择哪些 patch 来 apply 到本地 git 并劲儿推入 mainline kernel 相关的。这个决定可能是进行一个彻底的 review,也可能是依赖于其他人的 review 投入。当维护者接受了 patch 时,他们会给这些 patch 打上 Signed-off-by 标签。通过查看非 patch 作者的这些其他人的 tag,可以了解到谁是最活跃的维护者。在 5.16 版本中,他们是:
Top signoffs in 5.16 | ||
---|---|---|
David S. Miller | 1082 | 7.8% |
Greg Kroah-Hartman | 1062 | 7.6% |
Mark Brown | 558 | 4.0% |
Alex Deucher | 472 | 3.4% |
Jens Axboe | 442 | 3.2% |
Andrew Morton | 400 | 2.9% |
Martin K. Petersen | 353 | 2.5% |
Jakub Kicinski | 325 | 2.3% |
Mauro Carvalho Chehab | 325 | 2.3% |
Bjorn Andersson | 305 | 2.2% |
Paolo Bonzini | 230 | 1.7% |
Jonathan Cameron | 224 | 1.6% |
Kalle Valo | 210 | 1.5% |
Arnaldo Carvalho de Melo | 203 | 1.5% |
Hans Verkuil | 183 | 1.3% |
Felix Fietkau | 163 | 1.2% |
David Sterba | 162 | 1.2% |
Alexei Starovoitov | 154 | 1.1% |
Borislav Petkov | 152 | 1.1% |
Saeed Mahameed | 148 | 1.1% |
这份维护者名单在各个版本中的变化不大,都是由一些已经工作多年的内核项目最资深的开发者所组成的。
5.16 的工作得到了我们能够确定的 251 家公司(employers)的支持。其中最活跃的是:
Most active 5.16 employers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
这个表格也同样在两个版本之间通常是没有什么变化的。有些人可能会对"unknown" 这一类感到好奇,其中包括了近 400 位开发者,他们中的大多数人都贡献了一到两个 patch。这些开发者中的每一位在这个版本中都仅仅提供了很小的贡献,但他们加起来却占了总 patch 数量的很大一部分。这些开发者中的许多人已经完成了他们在 kernel 项目中希望要达成的目标,下次可能就看不到他们了。也有很多其他人则是刚刚开始,今后会随着时间的推移而成为重要的贡献者。
总而言之,5.16 只是另一个很普通的内核开发周期。来自近 2000 名开发者的大量 patch 全部整合到了这个新的、坚实的(尽管不是完美的)内核版本中。内核项目在质量控制、测试、对维护者的支持等方面不乏问题,但它还是设法在一个可预测的时间表上完成了工作。现在开始进行 5.17 版本的工作,该版本将于 3 月中旬发布。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~