LWN: 5.3开发周期数据分析

640
点击上方蓝色“ Linux News搬运工”关注我们~

5.3 Kernel development cycle statistics

By Jonathan Corbet

截至9月9日,5.3 kernel开发工作已经进入尾声,预计9月15日将会正式发布。LWN按老规矩再次总结一下5.3这个相对比较繁忙的开发周期里都有哪些代码加入。

截至此时,已经有14435个patch(不包含merge所自动增加的节点)被合入到mainline。这些改动分别由1846位开发者提交,比起近期的几个release来说,5.3集成周期算是比较繁忙的。

Release Changesets Developers
4.15 14,866 1,801
4.16 13,630 1,805
4.17 13,541 1,713
4.18 13,283 1,728
4.19 14,043 1,752
4.20 13,884 1,749
5.0 12,808 1,757
5.1 13,034 1,737
5.2 14,024 1,783
5.3 14,435 1,846

5.3里面的patch虽然多,但也没能创造新的记录。4.9版本里面有16214个patch合入,这个记录仍然保持着。不过1846个开发者确实创了新高,说明内核开发社区仍在增长。其中256位是第一次提交代码。

全部1846位开发者删除了389000行代码,算是非常多了。他们也新增了973000行代码,所以kernel这一轮增长了584000行。其中最活跃的开发者是:

Most active 5.3 developers
By changesets
Kuninori Morimoto 271 1.9%
Christoph Hellwig 262 1.8%
Mauro Carvalho Chehab 205 1.4%
Nishka Dasgupta 162 1.1%
Chris Wilson 160 1.1%
Greg Kroah-Hartman 145 1.0%
Yue Haibing 137 0.9%
Masahiro Yamada 130 0.9%
Gustavo A. R. Silva 128 0.9%
Geert Uytterhoeven 120 0.8%
Takashi Sakamoto 113 0.8%
Wolfram Sang 101 0.7%
Arnaldo Carvalho de Melo 99 0.7%
Colin Ian King 98 0.7%
Arnd Bergmann 96 0.7%
Adrian Hunter 96 0.7%
Russell King 94 0.7%
David Howells 92 0.6%
Hawking Zhang 90 0.6%
Maxime Ripard 84 0.6%
By changed lines
Hawking Zhang 364371 31.2%
Arnd Bergmann 84993 7.3%
Mauro Carvalho Chehab 34041 2.9%
Harry Wentland 33568 2.9%
Jason Gunthorpe 22421 1.9%
Chris Wilson 17382 1.5%
Richard Fitzgerald 15791 1.4%
Linus Walleij 13392 1.1%
Greg Kroah-Hartman 11713 1.0%
Bernard Metzler 10963 0.9%
Christoph Hellwig 10844 0.9%
Pawel Laszczak 7702 0.7%
Hannes Reinecke 7255 0.6%
Andrii Nakryiko 7143 0.6%
Maxime Ripard 6709 0.6%
David Ahern 6557 0.6%
Daniele Ceraolo Spurio 5781 0.5%
Darrick J. Wong 5776 0.5%
Kuninori Morimoto 4717 0.4%
Thomas Zimmermann 4706 0.4%

这轮贡献最多patch的是Kuninori Morimoto,他修改了大量sound子系统的代码。Christoph Hellwig对核心代码以及block子系统进行了大量改进。Mauro Carvalho Chehab把大量的文档文件转换成了新的结构化文本格式。Nishka Dasgupta修复了大量的Coccinelle的警告问题。Chris Wilson对Intel i915的显卡驱动进行了很多修改。

从修改行数来说,Hawking Zhang修改的代码占了5.3中改动代码的1/3,主要是修改了amdgpu显卡驱动的寄存器定义。Arnd Bergmann去除了不再使用的ISDN子系统代码,并且继续对kernel tree里面进行各种改进。Harry Wentland也贡献了AMD显卡驱动改动。Jason Gunthorpe则删除了一些已经作废的RDMA代码。

对测试和review做出最大贡献的分别是:

Test and review credits in 5.3

Tested-by
Andrew Bowers 115 12.0%
Arnaldo Carvalho de Melo 27 2.8%
Leo Yan 24 2.5%
Tony Lindgren 24 2.5%
Tim Schumacher 19 2.0%
Aaron Brown 18 1.9%
Andre Przywara 18 1.9%
Keerthy 17 1.8%
Nick Desaulniers 16 1.7%
Hans de Goede 16 1.7%
Shijith Thotton 16 1.7%
Reviewed-by
Alex Deucher 193 3.3%
Rob Herring 167 2.8%
Chris Wilson 115 1.9%
Christoph Hellwig 108 1.8%
Hawking Zhang 100 1.7%
Simon Horman 93 1.6%
Darrick J. Wong 91 1.5%
Andrew Lunn 90 1.5%
Tvrtko Ursulin 79 1.3%
Geert Uytterhoeven 78 1.3%
Maarten Lankhorst 77 1.3%

贡献Tested-by标签最多的是Andrew Bowers,他从来没有对kernel提交过patch,不过看起来在对Intel驱动进行大量深入测试。Review贡献者分布则比较平均,主要集中在那些要求合入之前必须有Reviewed-by的子系统里。4824个patch(占5.3的33%)都有Reviewed-by tag标记,这个比例比起过去平均书来说要高,不过比5.2版本还是略低。

Reported-by tag,是用来对报出问题的人致敬的,我们也来分析一下。5.3版本有687个patch标有Reviewed-by tag,其中最多的是:

Reported-by credits in 5.3
Hulk Robot 89 10.7%
kbuild test robot 62 7.5%
Stephen Rothwell 37 4.4%
Dan Carpenter 24 2.9%
syzbot 18 2.2%
Randy Dunlap 11 1.3%
Geert Uytterhoeven 9 1.1%
Guenter Roeck 9 1.1%
kernel test robot 9 1.1%
Arnd Bergmann 8 1.0%

报出最多bug的前5名来说,其中3个是自动测试系统,一位是linux-next maintainer(linux-next对很多patch来说都是集成测试第一次发生的地方),一位是执着于使用静态分析工具寻找(并修复)bug的开发者。换句话说,围绕kernel开发流程慢慢建立起来的测试机制还是有效的,能够让不少bug在真正影响到用户之前暴露出来。

需要注意在5.3中占比14%的2026个patch都是带着"Fixes" tag的。也就是说这些都是在修复此前混入mainline代码的bug的。当然肯定有很多bug fix其实合入时忘了加Fixes tag,所以实际上bug fix的占比肯定大大高于14%这个数字。所以,我们还是要做很多事来继续改进测试架构,以及测试流程。

最后,有233个公司实体(这些是我们识别出来的,不一定全)对5.3的kernel开发都有贡献。其中最活跃的公司是:

Most active 5.3 employers
By changesets
Intel 1545 10.7%
AMD 966 6.7%
(Unknown) 963 6.7%
Red Hat 925 6.4%
(None) 865 6.0%
Google 638 4.4%
Renesas Electronics 638 4.4%
Linaro 548 3.8%
IBM 460 3.2%
Mellanox 440 3.0%
(Consultant) 410 2.8%
Huawei Technologies 372 2.6%
SUSE 337 2.3%
Samsung 311 2.2%
NXP Semiconductors 309 2.1%
Linux Foundation 291 2.0%
ARM 280 1.9%
Facebook 188 1.3%
Oracle 170 1.2%
BayLibre 170 1.2%
By lines changed
AMD 432537 37.0%
Linaro 115926 9.9%
Intel 76950 6.6%
Mellanox 46732 4.0%
Samsung 37869 3.2%
Google 31666 2.7%
(Unknown) 31310 2.7%
Red Hat 31089 2.7%
IBM 29449 2.5%
(None) 27803 2.4%
SUSE 18928 1.6%
Cirrus Logic 16509 1.4%
(Consultant) 14192 1.2%
Facebook 13723 1.2%
Linux Foundation 13405 1.1%
ARM 12755 1.1%
Pengutronix 12398 1.1%
NXP Semiconductors 12202 1.0%
Renesas Electronics 11345 1.0%
Huawei Technologies 10165 0.9%

这个表格里的内容跟往常差不多。最活跃的公司通常都比较稳定,不会说仅在某几个release cycle里活跃。

总的来看,上述数据展示出的就是一个开发社区在按照预定的项目规划来持续合入大量改动,并且这个社区也在缓慢扩张。尽管还有这样那样的问题,内核开发社区做的很不错了。

全文完

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

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议修改再创作~

长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

你可能感兴趣的:(LWN: 5.3开发周期数据分析)