LWN:5.14 开发周期数据分析!
关注了就能看到更多这么棒的文章哦~
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
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 Torvalds | 384 | 33.8% |
David S. Miller | 230 | 20.2% |
Olof Johansson | 82 | 7.2% |
Mark Brown | 54 | 4.8% |
Dave Airlie | 52 | 4.6% |
Greg Kroah-Hartman | 35 | 3.1% |
Rafael J. Wysocki | 28 | 2.5% |
Jakub Kicinski | 28 | 2.5% |
Bjorn Helgaas | 25 | 2.2% |
Will Deacon | 24 | 2.1% |
Arnd Bergmann | 16 | 1.4% |
Marc Zyngier | 14 | 1.2% |
Stephen Boyd | 13 | 1.1% |
Takashi Iwai | 10 | 0.9% |
Paolo Bonzini | 8 | 0.7% |
Jens Axboe | 8 | 0.7% |
Darrick J. Wong | 8 | 0.7% |
Thomas Gleixner | 6 | 0.5% |
Ingo Molnar | 6 | 0.5% |
Jiri Kosina | 6 | 0.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. Miller 1625 11.0% Greg Kroah-Hartman 1118 7.5% Alex Deucher 867 5.8% Mark Brown 541 3.6% Andrew Morton 489 3.3% Martin K. Petersen 332 2.2% Paolo Bonzini 324 2.2% Jens Axboe 324 2.2% Mauro Carvalho Chehab 284 1.9% Michael Ellerman 273 1.8% Takashi Iwai 216 1.5% Jason Gunthorpe 213 1.4% Hans Verkuil 209 1.4% Guangbin Huang 180 1.2% Will Deacon 176 1.2% Bjorn Andersson 170 1.1% Arnaldo Carvalho de Melo 169 1.1% Jakub Kicinski 154 1.0% Jonathan Cameron 148 1.0% Herbert Xu 144 1.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 深度文章以及开源社区的各种新近言论~