
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
这轮贡献最多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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
这个表格里的内容跟往常差不多。最活跃的公司通常都比较稳定,不会说仅在某几个release cycle里活跃。
总的来看,上述数据展示出的就是一个开发社区在按照预定的项目规划来持续合入大量改动,并且这个社区也在缓慢扩张。尽管还有这样那样的问题,内核开发社区做的很不错了。
全文完
LWN文章遵循CC BY-SA 4.0许可协议。
热烈欢迎转载以及基于现有协议修改再创作~
长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~