LWN:5.14 开发周期数据分析!

共 5066字,需浏览 11分钟

 ·

2021-09-12 11:41

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

Some 5.14 development statistics

By Jonathan Corbet
August 30, 2021
DeepL assisted translation
https://lwn.net/Articles/867540/

5.14 内核在经历了 9 个星期的开发之后,终于在 8 月 29 日正式发布了。这个周期不像上一个版本(创造了参与开发人数最多的记录)那么繁忙,但是仍然有许多进展,包括一些等待许久的功能终于合入了。现在既然已经发不了,那么又到了我们传统的节目了,一起来回归一下 5.14 中合入的代码主要来自哪里,以及经过什么路径合入的。

针对 5.14 版本,内核社区相应地合入了 14,735 个 non-merge changeset,来自 1,912 位开发者。其中 261 位开发者是在本周期内才开始 kernel 贡献的。内核增加了 861,000 行代码,移除了 321,000 行,净增 540,000 行代码。

最活跃的 5.14 开发者为:

Most active 5.14 developers
By changesets
Lee Jones2151.5%
Andy Shevchenko1961.3%
Mauro Carvalho Chehab1911.3%
Peng Li1671.1%
Yang Yingliang1531.0%
Zhen Lei1451.0%
Christoph Hellwig1360.9%
Colin Ian King1360.9%
Vladimir Oltean1340.9%
Fabio Aiuto1320.9%
Takashi Iwai1310.9%
Sean Christopherson1220.8%
Jiri Slaby1130.8%
Jonathan Cameron1080.7%
Christophe Leroy1070.7%
Geert Uytterhoeven1020.7%
Takashi Sakamoto960.7%
Krzysztof Kozlowski940.6%
Gustavo A. R. Silva930.6%
Thomas Gleixner830.6%
By changed lines
Aaron Liu19337918.9%
Aurabindo Jayamohanan Pillai481844.7%
Christoph Hellwig466674.6%
Mustafa Ismail320143.1%
James Smart309073.0%
Shiraz Saleem291852.8%
Nicholas Kazlauskas196201.9%
Kashyap Desai128911.3%
Steen Hegelund125841.2%
Masahiro Yamada105171.0%
Jin Yao101331.0%
M Chetan Kumar89470.9%
Konrad Dybcio88530.9%
Srinivas Kandagatla82660.8%
Fabio Aiuto69760.7%
Vladimir Oltean64440.6%
Thierry Reding63140.6%
Takashi Iwai58580.6%
Mark Rutland56120.5%
Greg Kroah-Hartman54850.5%

Lee Jones 近来似乎已经固定处于 changeset 数量顶端了,他继续在 kernel 代码内到处进行清理工作、完成 warning fix。Andy Shevchenko 在驱动程序子系统下进行了许多 fix。Mauro Carvalho Chehab 主要是在 media 子系统下进行了许多文档修订工作,Peng Li 则在网络驱动里面进行了许多 style fix,Yang Yingliang 在不同的驱动中 fix 了许多 warning。

在 "changed lines" 榜单中,我们看到 Aaron Liu 和 Aurabindo Jayamohanan Pillai 位于榜首,肯定是由于那许多 amdgpu 头文件的改动。Christoph Hellwig 继续做他的重构工作,主要集中在块设备子系统内。Mustafa Ismail 用一系列 patch 添加了针对 RDMA 的 Intel Ethernet protocol 的驱动,James Smart 新增了一个 SCSI 驱动。

5.14 的工作主要得到了 231 个公司、团体的支持,其中最活跃的是:

Most active 5.14 employers
By changesets
Huawei Technologies173111.7%
Intel13319.0%
(Unknown)10036.8%
AMD8796.0%
Red Hat8545.8%
Google7565.1%
(None)7445.0%
Linaro6544.4%
SUSE5033.4%
IBM4453.0%
NVIDIA3192.2%
Oracle2902.0%
Canonical2781.9%
NXP Semiconductors2761.9%
Facebook2741.9%
Arm2551.7%
(Consultant)2291.6%
Renesas Electronics2031.4%
Linux Foundation1701.2%
Pengutronix1511.0%
By lines changed
AMD29343928.6%
Intel13556413.2%
(Consultant)509985.0%
Broadcom477424.7%
Linaro336523.3%
Red Hat309783.0%
Huawei Technologies297042.9%
(Unknown)296312.9%
Google293872.9%
NVIDIA284152.8%
(None)231542.3%
IBM225412.2%
SUSE198871.9%
Marvell172941.7%
Microchip Technology148521.4%
NXP Semiconductors122001.2%
Arm118311.2%
SoMainline105991.0%
Socionext Inc.105261.0%
Code Aurora Forum100501.0%

Huawei 再一次来到了 changeset contributors 榜单的首位. 除此之外这次的榜单跟以前没有多少差别。

从最开始的时候起,我们的统计主要都是关注那些 non-merge changeset,因为我们认为这些是完成真正工作的改动。而 Merge changeset 则只是用来从一个 git 仓库或分支传播到另一个上的过程。也就是说 merge commit 主要是维护者的工作产物。每个 merge 都实际上经过了对代码的审查,以及判断是否是合适的时机来推动这部分改动到下一站(直至最终合入 mainline kernel)。所以我们也应该看看这些 merge commit 了。在 5.14 周期中创建了最多 merge commit 的开发者是:

Merge contributors in 5.14
Linus Torvalds38433.8%
David S. Miller23020.2%
Olof Johansson827.2%
Mark Brown544.8%
Dave Airlie524.6%
Greg Kroah-Hartman353.1%
Rafael J. Wysocki282.5%
Jakub Kicinski282.5%
Bjorn Helgaas252.2%
Will Deacon242.1%
Arnd Bergmann161.4%
Marc Zyngier141.2%
Stephen Boyd131.1%
Takashi Iwai100.9%
Paolo Bonzini80.7%
Jens Axboe80.7%
Darrick J. Wong80.7%
Thomas Gleixner60.5%
Ingo Molnar60.5%
Jiri Kosina60.5%

Linus Torvalds 一般来说并不会出现在我们以前统计的这些榜单中,毕竟他自己也承认近来他写的代码已经很少了。而 merge 数量则反映出了他的工作在哪里了。他处理了来自不同子系统维护者的数百个 pull request,仔细检查每一个(其实他看得会比一般人猜想的要更加仔细),然后如果看起来挺好的话就进行 merge 操作。他的这些 merge 工作占了 kernel 中这类操作的 1/3。

不过,每个 patch 其实有两条路可以走完这些子系统的维护者链条。其中一条是经过 pull requests,每一个 pull request 都会产生上述表格中统计的一个 merge 节点。不过在这之前其实某位维护者需要先将其合入了他自己的 Git 仓库从而开始 pull request 流程。这时候维护者都会给 patch 加上一个 Signed-off-by tag。想要看到维护者们的工作量的话,可以看一下每个 patch 上带有的不是作者本人的 Signed-off-by tag。在 5.14 中的结果是:

Non-author signoffs in 5.14
David S. Miller162511.0%
Greg Kroah-Hartman11187.5%
Alex Deucher8675.8%
Mark Brown5413.6%
Andrew Morton4893.3%
Martin K. Petersen3322.2%
Paolo Bonzini3242.2%
Jens Axboe3242.2%
Mauro Carvalho Chehab2841.9%
Michael Ellerman2731.8%
Takashi Iwai2161.5%
Jason Gunthorpe2131.4%
Hans Verkuil2091.4%
Guangbin Huang1801.2%
Will Deacon1761.2%
Bjorn Andersson1701.1%
Arnaldo Carvalho de Melo1691.1%
Jakub Kicinski1541.0%
Jonathan Cameron1481.0%
Herbert Xu1441.0%

这里我们看到那些 apply patch 而不是进行通常 pull request 流程的维护者们。有些名字在两个榜单上都存在,但是无论如何这两个名单还是差异很大的。David Miller 出现在两个榜单的顶部区域正说明了他比起别人完成的工作更多,非常高兴可以看到他又可以恢复到全速工作的状态了。这数据也能看出那种将 patch 先合入 topic branch 再合入本地主干分支从而发给 upstream 的工作方式。合入了的每组 patch 都声称了一个非作者本人的 signoff 以及一个 merge commit。其他维护者直接合入到跟 upstream 对应的本地主干分支就不会生成这种 merge 节点。

无论采用什么方式,这些在管理整个系统中 patch 的维护者们都在 kernel 开发流程中具有非常重要的作用。没有他们的贡献的话,所有那些提供出 patch 的开发者们就没有地方可以投递了。维护工作很辛苦,经常没有回报。我们都需要感激他们能一直支撑着内核的整个开发流程。

可以看出,内核开发社区仍然表现很好,继续如常地快节奏推进。在撰写本文的时候,5.15 开发周期已经早就有很多改动排队等着合入了。我们会看到上述的情况在今后的 9~10 周的时间内再次重复(当然也会有一些新的变化)。

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

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

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



浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报