LWN:5.6内核数据分析!

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

Some 5.6 kernel development statistics

By Jonathan Corbet
March 30, 2020

原文来自:https://lwn.net/Articles/816162/

当5.6内核在3月29日发布时,5.6内核已经接受了来自1,712个开发者的12,665个patch set,这个开发周期相当典型。按照LWN的传统,下面我们来看看这些patch set的来源,以及是谁支持了这些patch set的工作。这次发布周期可能看起来很普通,但仍有一些差异值得注意。

正如Linus Torvalds在发布公告中指出的那样,目前的冠状病毒大流行似乎并没有严重影响到内核开发——到目前为止。不过,人们不应该忘记,5.6合并窗口在2月初关闭的,当时这场灾难的影响还没有在中国以外的地方引起重视。当然,合入5.6的大部分工作都是在更早的时候完成的。考虑到延迟进入主线的工作,可能要到5.8周期才能感受到全部影响。

不言而喻,我们希望这些影响是最小的,希望我们社区的人(以及更多的人)能够尽可能地顺利度过这次疫情。

在5.6工作的开发者中,214人是第一次提出贡献。虽然对于一般的项目来说,会很高兴看到在九周内有这么多新的贡献者,但这对于Linux kernel来说是很低的——这是3.11以来的最低水平,它在2013年9月发布的时候有203位首次贡献者。这种下滑似乎并不符合一直一来的趋势。

LWN:5.6内核数据分析!_第1张图片

这种下降有可能部分原因是由于目前的疫情。而在开发周期中,有不少首次贡献者在开发周期的后期进行了bug修复,数量之多令人惊讶。

为5.6贡献最活跃的开发者是:

Most active 5.6 developers
By changesets
Takashi Iwai 406 3.2%
Chris Wilson 306 2.4%
Sean Christopherson 143 1.1%
Jérôme Pouiller 125 1.0%
Eric Biggers 122 1.0%
Arnd Bergmann 114 0.9%
Zheng Bin 110 0.9%
Geert Uytterhoeven 103 0.8%
Tony Lindgren 103 0.8%
Masahiro Yamada 94 0.7%
Colin Ian King 92 0.7%
Ben Skeggs 91 0.7%
Ville Syrjälä 90 0.7%
Andy Shevchenko 88 0.7%
Russell King 88 0.7%
Alex Deucher 86 0.7%
Krzysztof Kozlowski 82 0.6%
Thomas Zimmermann 80 0.6%
Jens Axboe 77 0.6%
Jani Nikula 74 0.6%
By changed lines
Kalle Valo 48483 7.2%
Arnd Bergmann 29415 4.3%
Jason A. Donenfeld 18664 2.8%
Ben Skeggs 13471 2.0%
Greg Kroah-Hartman 11931 1.8%
Chris Wilson 10615 1.6%
Srinivas Kandagatla 8739 1.3%
Alex Maftei 8581 1.3%
Maxime Ripard 7521 1.1%
Peter Ujfalusi 6970 1.0%
Tony Lindgren 6320 0.9%
Helen Koike 5789 0.9%
Takashi Iwai 5622 0.8%
Shuming Fan 5604 0.8%
Michal Kalderon 5445 0.8%
Sricharan R 5065 0.7%
Andrii Nakryiko 4857 0.7%
Roman Li 4852 0.7%
Thierry Reding 4845 0.7%
Sunil Goutham 4762 0.7%

这次提交最多的开发者是Takashi Iwai,他在声音子系统中做了大量的清理和API迁移工作。Chris Wilson专注于i915图形驱动,Sean Christopherson似乎从头开始重写了KVM管理程序,Jérôme Pouiller在staging tree中做了wfx无线网络接口驱动,Eric Biggers在文件系统和crypto子系统中贡献了很多工作。

Kalle Valo只用了5个提交就排在了"更改行数榜 "的最前面,因为增加ATH11k网络驱动的那一个提交量很大。Arnd Bergmann做了不少工作,其中删除了一组过时的ISDN驱动,并且基本完成了2038年的准备工作。Jason Donenfeld添加了WireGuard VPN子系统,Ben Skeggs在新版图形驱动上做了大量工作,Greg Kroah-Hartman从staging tree中删除了大家不怎么喜欢的octeon驱动。

测试和review的排行榜是这样的:

Test and review credits in 5.6
Tested-by
Keerthy 61 7.6%
Andrew Bowers 47 5.9%
Aaron Brown 36 4.5%
Peter Ujfalusi 21 2.6%
Tero Kristo 20 2.5%
Stephan Gerhold 20 2.5%
John Garry 20 2.5%
Brian Masney 18 2.2%
Alexei Starovoitov 17 2.1%
Steven Rostedt 15 1.9%
Arnaldo Carvalho de Melo 15 1.9%
Reviewed-by
Rob Herring 140 2.8%
Alex Deucher 99 2.0%
David Sterba 88 1.8%
Andrew Lunn 87 1.7%
Florian Fainelli 83 1.7%
Tvrtko Ursulin 82 1.6%
Linus Walleij 78 1.6%
Chris Wilson 78 1.6%
Tony Cheng 74 1.5%
Laurent Pinchart 70 1.4%
Andy Shevchenko 69 1.4%

在合入5.6的这些patch中,有669个(总占比5.3%)包含Tested-by tag。这个数字比起5.5版本要少。而包含Reviewed-by tag的则有4183个patch,占33%。

5.6中有877个patch包含Reported-by tag来感谢报出bug的人,其中最活跃的人员为:

Reporting credits in 5.6
Hulk Robot 178 18.6%
Syzbot 99 10.4%
kernel test robot 58 6.1%
Dan Carpenter 23 2.4%
Randy Dunlap 20 2.1%
Stephen Rothwell 15 1.6%
Linus Torvalds 7 0.7%
Marek Szyprowski 7 0.7%
Christoph Paasch 6 0.6%
Naresh Kamboju 6 0.6%
Dmitry Osipenko 5 0.5%
Ravi Bangoria 5 0.5%
Michael Ellerman 5 0.5%
Jann Horn 5 0.5%
Erhard Furtner 5 0.5%
Qian Cai 5 0.5%

我们看到有越来越多的bug是来自自动测试系统报出的,占总数的三分之一了。

5.6 kernel的贡献者中我们可以看出有207个公司,这个数字比起5.5的时候(231个)也更加低了。最活跃的公司为:

Most active 5.6 employers
By changesets
Intel 1694 13.4%
(Unknown) 904 7.1%
AMD 781 6.2%
(None) 778 6.1%
SUSE 713 5.6%
Red Hat 702 5.5%
Google 558 4.4%
Linaro 503 4.0%
Huawei Technologies 483 3.8%
Facebook 298 2.4%
Mellanox 252 2.0%
Renesas Electronics 247 2.0%
IBM 232 1.8%
Arm 231 1.8%
Code Aurora Forum 222 1.8%
(Consultant) 216 1.7%
Texas Instruments 213 1.7%
NXP Semiconductors 210 1.7%
Oracle 147 1.2%
Broadcom 143 1.1%
By lines changed
Intel 78083 11.5%
Code Aurora Forum 68538 10.1%
Linaro 59492 8.8%
AMD 44979 6.6%
Red Hat 40553 6.0%
(Unknown) 28591 4.2%
(None) 27387 4.0%
(Consultant) 23271 3.4%
Google 20038 3.0%
SUSE 19274 2.8%
Facebook 17525 2.6%
Texas Instruments 16561 2.4%
Mellanox 14977 2.2%
Linux Foundation 12289 1.8%
Marvell 11678 1.7%
Realtek 10968 1.6%
Collabora 9491 1.4%
NXP Semiconductors 8689 1.3%
Solarflare Communications 8670 1.3%
IBM 8586 1.3%

现在合入我们kernel的patch中已经有八分之一的是来自Intel的了。过去一直是Red Hat的贡献最多,不过它的位置近来一直在慢慢下降,这次可能是第一次被SUSE超越。其他的数字看起来跟往常差不多。

再来看看那些Signed-off-by tag,如果我们着重关注那些不是作者本人的signed-off,这个结果会有些变化:

Non-author signoffs in 5.6
Developers
David S. Miller 1162 10.1%
Alex Deucher 748 6.5%
Greg Kroah-Hartman 653 5.7%
Mark Brown 445 3.9%
Paolo Bonzini 271 2.4%
Kalle Valo 239 2.1%
Herbert Xu 236 2.1%
Andrew Morton 220 1.9%
Mauro Carvalho Chehab 213 1.9%
Alexei Starovoitov 188 1.6%
Employers
Red Hat 2423 21.1%
Linaro 1213 10.6%
AMD 786 6.9%
Intel 763 6.7%
Google 746 6.5%
Linux Foundation 701 6.1%
Facebook 395 3.4%
SUSE 390 3.4%
(None) 351 3.1%
Mellanox 296 2.6%

开发者如果对别人的patch加了自己的Signed-off-by tag,通常来说意味着这位开发者是在帮忙把patch推上mainline的过程中的一环,一般是打在某个子系统的git仓库的时候。这些签名就能让我们看到kernel patch的把关者们都是谁。David Miller是网络子系统的maintainer,已经持续贡献许多年了。名单上其他的开发者表明现在AMD显卡,设备驱动,KVM子系统等领域都非常活跃。

在右边这几列我们可以看到虽然Red Hat近来贡献的patch数量在逐年减少,但是进入mainline的patch中有超过20%仍然是经过Red Hat开发者之手的。

之前LWN第一次分析signoff的数据,是在2007年针对2.6.22开发周期的。当时榜上排名第一的是Andrew Morton和Linus Torvalds,他们两位现在参与处理的patch数量都不算多了。第三名就是David Miller。2007年的top 10 maintainers中仍有4位保持在top 10里。同样,有5家公司在13年之后也仍然保持在top 10之列(如果我们可以认为2013的Novell就是2020年的SUSE的话)。

综上所述,从目前的情况来看,内核社区的情况基本都还算正常。patch的进展继续保持着稳定的速度,开发人员的数量仍然很多。社区的构成慢慢地在发生变化,但内核开发的过程仍然没有中断。

全文完

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

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

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

你可能感兴趣的:(LWN:5.6内核数据分析!)