LWN:5.15 开发周期数据统计!

Linux News搬运工

共 5441字,需浏览 11分钟

 ·

2021-11-14 00:08

关注了就能看到更多这么棒的文章哦~

Some 5.15 development statistics

By Jonathan Corbet
November 1, 2021
https://lwn.net/Articles/874283/

5.15 内核在 10 月 31 日正式发布了,code name 也就顺利成章地起名为 "Trick or Treat" 了。当时,已经有 12,377 个 non-merge changesets 合入了 mainline,净增了 322,000 行代码。请继续阅读来了解 5.15 kernel 中的贡献都来自哪些力量。

LWN 一直在阅读这类总结文章的读者应该会注意到 5.15 中的总 patch 数量相对偏少。确实,我们应该跟 kernel 之前的情况比较一下,就从 2019 年早期发布的 5.0 版本来开始吧:

ReleaseChangesetsDevelopers
5.012,8081,712
5.113,0341,707
5.214,0241,716
5.314,6051,846
5.414,6191,802
5.514,3501,885
5.612,6651,712
5.713,9011,878
5.816,3061,991
5.914,8581,914
5.1016,3081,971
5.1114,3401,912
5.1213,0151,873
5.1316,0302,062
5.1414,7351,912
5.1512,3771,797

可以看到,从合入的 changeset 数量来看,5.15 是在 5.x 时代里面最安静的开发周期了。要想找到一个比它的改动更少的版本,要回到 2016 年 8 月份的 4.7 版本了,当时有来自 1.582 位开发者的 12,283 个 changeset。这个周期的改动这么少,确实很意外,因为 5.15 基本上已经确定会是下一个 long-term support release 了。kernel 开发者经常会担心各个厂商把还没有准备好的代码急着塞到 LTS release 里面,不过这次看来没有这种问题。

也许这里的事实情况是开发社区正在疫情中期进行了一个短暂的休息。

Individual contributors

与此同时,参与到这次 release 的开发者的数量虽然比之前几个 cycle 要少,但是还是比 5.x 时代的某些 release 要多的。在 5.15 的这 1797 位开发者中,有 251 位是首次贡献者。这个数字偏低,不过跟之前几次 release 还是差不多同一个水平。本轮中最活跃的开发者是:

Most active 5.15 developers
By changesets
Christoph Hellwig2522.0%
Namjae Jeon1711.4%
Takashi Iwai1611.3%
Vladimir Oltean1381.1%
Colin Ian King1311.1%
Arnd Bergmann1191.0%
Andy Shevchenko1090.9%
Thomas Zimmermann1080.9%
Geert Uytterhoeven1000.8%
Michael Straube920.7%
Linus Walleij910.7%
Krzysztof Kozlowski910.7%
Pavel Begunkov830.7%
Sean Christopherson820.7%
Thomas Gleixner820.7%
Dan Carpenter800.6%
Phillip Potter790.6%
Bart Van Assche760.6%
Randy Dunlap730.6%
Christophe JAILLET730.6%
By changed lines
Phillip Potter13758417.0%
Namjae Jeon424835.2%
Konstantin Komarov322284.0%
Christoph Hellwig221772.7%
Jin Yao167722.1%
Hu Haowen131021.6%
Trevor Wu124071.5%
Linus Walleij118631.5%
Zack Rusin111631.4%
Lukas Bulwahn92111.1%
Konrad Dybcio87281.1%
Takashi Iwai79941.0%
Vladimir Oltean70240.9%
Arnd Bergmann69650.9%
Fabio Aiuto68640.8%
Kumar Kartikeya Dwivedi54930.7%
Quinn Tran53190.7%
James Smart52870.7%
Matthew Brost52190.6%
Iskren Chernev51760.6%

Christoph Hellwig 这轮是贡献最多 changeset 的人,他仍在对 block 和 SCSI 子系统进行深入地重构,偶尔也会涵盖一些其他工作,比如移除了 m68k 架构中的 set_fs()。Namjae Jeon 是在对新增的 ksmbd 文件系统实现进行贡献,Tkashi Iwai 继续作为 sound 子系统的 maintainer 进行贡献,Vladimir Oltean 对网络驱动进行了很多改进,Colin Ian King 在 kernel 代码中进行了许多小清理。

这一轮里修改了最多行代码的人是 Phillip Potter,他增加了 rt8818eu wireless network driver。Konstantin Komarov 在做 ntfs3 filesystem driver,Jin Yao 对 Intel 许多 subarchitecture 添加了 perf event 支持。

内核项目非常依赖 tester 和 reviewer,他们的贡献不亚于开发者们。在 5.15 cycle 里面,进行了最多的 test 和 review 工作的人是:

Test and review credits in 5.15
Tested-by
Daniel Wheeler628.2%
Babu Moger243.2%
Dvora Fuxbrumer212.8%
Nathan Chancellor131.7%
Stefano Stabellini131.7%
Christophe Leroy121.6%
Will Deacon121.6%
Gerald Schaefer121.6%
Lukasz Majczak121.6%
Marc Zyngier111.4%
Michael Schmitz101.3%
Marek Vasut101.3%
Yi Zhang101.3%
Guenter Roeck91.2%
Michael Walle91.2%
Reviewed-by
Christoph Hellwig2113.9%
Rob Herring1542.9%
Darrick J. Wong1011.9%
Laurent Pinchart921.7%
David Sterba691.3%
Hannes Reinecke681.3%
Hans de Goede601.1%
Daniel Vetter591.1%
Linus Walleij561.0%
Alex Deucher531.0%
Andy Shevchenko521.0%
Stephen Boyd500.9%
Lad Prabhakar500.9%
José Roberto de Souza490.9%
Christian König480.9%

很多对 kernel test 进行了贡献的朋友一般在我们社区里面没有怎么看到。我们只是从一些公司的内部 review 流程里面打上的 tag 来看到的。很多公司都有这个流程,不过他们并没有都通过 patch tag 方式来记录这些工作。review tag 也有类似的情况,不过这次不是这么回事。review 最多的参与者在 kernel 项目中都有一些不同的职责。比如这次 review 最多的人(Christoph Hellwig) 就是这次贡献最多 changeset 的人。

Employers

5.15 的开发工作中可以看到有来自 213 个公司的身影。其中最活跃的公司是:

Most active 5.15 employers
By changesets
Intel12169.8%
(Unknown)9587.7%
Google7185.8%
(None)6875.6%
Red Hat6335.1%
Linaro5774.7%
SUSE5534.5%
AMD5044.1%
Huawei Technologies4653.8%
NVIDIA3683.0%
IBM3492.8%
(Consultant)3062.5%
Facebook3052.5%
Canonical2752.2%
NXP Semiconductors2642.1%
Oracle2552.1%
Renesas Electronics2361.9%
Samsung2141.7%
Arm1931.6%
Linutronix1471.2%
By lines changed
(None)16621620.5%
Intel794929.8%
(Unknown)506426.2%
Samsung464315.7%
Linaro350034.3%
Paragon Software322284.0%
Red Hat243953.0%
(Consultant)236102.9%
AMD228642.8%
NVIDIA217052.7%
Google202152.5%
MediaTek197062.4%
SUSE195472.4%
Facebook139601.7%
VMWare135181.7%
SoMainline115811.4%
Huawei Technologies110701.4%
Renesas Electronics105571.3%
NXP Semiconductors104431.3%
Broadcom102021.3%

跟往常一样,这次也没有多少意外。Paragon Software 以前没有出现在这个榜单中,这次是因为对 ntfs3 的贡献。还有一个值得注意的是华为为 5.15 贡献了 465 个 changeset,虽然仍是很大数量的贡献了,但是比起在 5.14 中的 1,731 个 changeset 来说大大减少了。如果华为能保持 5.14 阶段的活跃度的话,这个开发周期比起之前几个的 changeset 数量来说就没有多少差异了。不过看起来列表中的几乎所有公司在 5.15 中的贡献数量比起 5.14 来说都要少。

Code longevity

最后,来看看这个有意思的数据,就是每个 release 里面有多少代码还在当前 kernel 里面存活着。这个数据是通过用 git blame 对 kernel 代码中每个文件进行暴力搜索,然后把每一行都对应到它第一次出现的 commit 上来获取的。对当前的 Git 历史进行这样的统计的话,看到的结果就是这样:

[plot]

绝大多数 release 中添加的代码在 5.15 kernel 中占据的代码比例都不超过 2%,5.15 本身新增代码占了总数的 2.1%。在 Git 刚开始应用进来的时候,也就是 2005 年的 2.6.12 release,kernel 就有了大约 1080 万行代码。大约 16 年过去了,那些代码中仍然有 230 万行(略少于四分之一)保留在 5.15 中,占现有代码的 7.2%。如果仔细看进去的话,会看到这些代码很多都是用单独的一行 "/*" 之类的内容,不过当然不是全部都是这样。比如说 kernel 中到现在还有 72 个文件自从 2005 年的第一个 commit 加入进来之后就从来就没有被改动过。

关于上图中其他比较显眼的那些 release,也能有一个比较直观的解释。比如 4.12,就包含了那些巨大的 amdgpu register 定义头文件之一,这些头文件估计会永远存在,并且也不会有任何人去读它们。5.3 和 5.9 的情况也类似。其他一些 release 的情况就没那么直观了,比如 5.6 里面加入了 ath11k 网卡驱动以及 WireGuard VPN ,不过光这两项没法解释为什么这么多代码还保留着。

5.15 开发周期中的新代码会在今后存活多久,现在还说不清。不过从上图来看,内核代码还是挺长寿的。许多代码会一直存在着,也许直到今后某天用 Rust 完全重写了。大家继续期待开发社区不断快速地添加和改动代码吧。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~



浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报