关注了就能看到更多这么棒的文章哦~
Some 5.5 kernel development statistics
By Jonathan Corbet |
5.5 kernel在1月26日的时候正式发布了。在这个版本的开发过程中,有人认为传统假期拖慢了开发者的贡献速度。不过最终来看,5.5版本中仍然合入了来自1885位开发者的14350个non-merge changeset,这个速度不算慢了。实际上5.5已经超出了5.4,成为拥有最多开发者的一版kernel。本文会继续按老样子来展示5.5版本中的所有贡献内容,也会讨论一下目前的stable分支的情况。
5.5中何如了590,000行左右的代码,移除了大约272,000行,净增318,000行。5.5的贡献者中,有285位是第一次提交。5.5中最活跃的开发者是:
Most active 5.5 developers
By changesets Chris Wilson 264 1.8% Christoph Hellwig 221 1.5% Yue Haibing 197 1.4% Colin Ian King 144 1.0% Thierry Reding 139 1.0% Krzysztof Kozlowski 130 0.9% Jens Axboe 124 0.9% Arnaldo Carvalho de Melo 121 0.8% Arnd Bergmann 120 0.8% Geert Uytterhoeven 120 0.8% Ville Syrjälä 109 0.8% Kuninori Morimoto 106 0.7% Alex Deucher 91 0.6% Takashi Iwai 90 0.6% Andy Shevchenko 89 0.6% Tony Lindgren 86 0.6% Andrii Nakryiko 85 0.6% zhengbin 83 0.6% Ben Dooks 78 0.5% Dmitry Torokhov 76 0.5%
By changed lines Ard Biesheuvel 24006 3.6% Haiyan Song 20182 3.0% Chris Wilson 13598 2.0% Dmitry Osipenko 12745 1.9% Hao Zheng 11252 1.7% Christoph Hellwig 10652 1.6% Jérôme Pouiller 10605 1.6% Potnuri Bharat Teja 9746 1.5% Jason A. Donenfeld 8656 1.3% Jiaxun Yang 6554 1.0% Mauro Carvalho Chehab 6240 0.9% Bhawanpreet Lakha 5908 0.9% Jens Axboe 5709 0.8% Thierry Reding 5208 0.8% Vladimir Oltean 4960 0.7% Zaibo Xu 4849 0.7% Adrian Hunter 4668 0.7% Andrii Nakryiko 4571 0.7% Nuno Sá 4516 0.7% Brendan Higgins 4402 0.7%
One
看起来如果想进入这个list,最可靠的办法就是开发显卡驱动。不出意料Chris Wilson对Intel i915驱动的工作让他贡献了最多的changeset。Christoph Hellwig在XFS文件系统、块设备层、RISC-V架构代码中做了大量工作。Yue Haibing和Colin Ian King两位在kernel tree中许多地方贡献了代码清理patch,Theirry Reding则主要开发了Tegra显卡驱动。
在"lines changed"这一列,Ard Biesheuvel主要都是在开发crypto subsystem部分,大多数工作是为了能把WireGuard VPN代码合入5.6而做的。Haiyan Song则提供了2个patch来更新Intel CPU的perf event data。Ditry Osipenko则开发了Tegra硬件相关的支持,Hao Zheng则提交了Marvell octeontx2网络驱动的一个大patch。
关于Test和review的贡献者情况如下:
Test and review credits in 5.5
Tested-by Andrew Bowers 73 8.2% Arnaldo Carvalho de Melo 46 5.2% Keerthy 21 2.4% Adam Ford 21 2.4% Yoshihiro Shimoda 17 1.9% Peter Geis 14 1.6% Hannes Reinecke 12 1.3% Stan Johnson 12 1.3% Aaron Brown 12 1.3% Sean Nyekjaer 11 1.2% Randy Dunlap 11 1.2%
Reviewed-by Darrick J. Wong 205 3.5% Rob Herring 176 3.0% Chris Wilson 142 2.4% Christoph Hellwig 115 1.9% Tvrtko Ursulin 109 1.8% Alex Deucher 94 1.6% David Sterba 87 1.5% Andrew Lunn 84 1.4% Daniel Vetter 73 1.2% Christian König 62 1.0% Greg Kroah-Hartman 61 1.0%
只有797个changeset(占总数5.5%)带有Tested-by tag,4939 changeset(占总数34%)带有Reviewed-by tag。其中两位测试者Andrew Bowers和Keerthy分别专注于测试Intel和TI特有的驱动程序patch。Reviewer中第一名的Darrick Wong作为XFS maintainer,对XFS patch除了加上自己的sign off信息之外,还会打上Reviewed-by tag。大多数其他subsystem maintainer没有这么做。
报出最多bug的开发者,以及给他们credit的开发者,排名如下:
Reported-by credits in 5.5
Recipients Hulk Robot 164 15.7% Syzbot 125 12.0% kbuild test robot 102 9.8% Dan Carpenter 32 3.1% Linus Torvalds 14 1.3% Stephen Rothwell 12 1.2% Geert Uytterhoeven 8 0.8% Randy Dunlap 8 0.8% kernel test robot 8 0.8% Qian Cai 8 0.8% Yauheni Kaliuta 8 0.8% Arnaldo Carvalho de Melo 7 0.7% Johan Hovold 7 0.7% Christophe Leroy 7 0.7% coverity-bot 7 0.7%
Creditors zhengbin 83 8.0% YueHaibing 69 6.6% Eric Dumazet 32 3.1% Jens Axboe 26 2.5% Chris Wilson 22 2.1% Jérôme Pouiller 18 1.7% Paul E. McKenney 16 1.5% Takashi Iwai 12 1.2% Florian Westphal 11 1.1% Frederic Weisbecker 11 1.1% Andrii Nakryiko 10 1.0% Linus Torvalds 9 0.9%
这个数据表明超过1/3的bug report(其中有934个在5.5周期中得到了credit)都是来自自动测试系统。有一些报出的bug比起其他的要严重得多,不过毫无疑问对kernel来说每个发布周期都能由自动测试系统找出几百个bug(并且后续得到了fix)是非常有好处的。
总共231个公司(至少是我们能判断出来的)对5.5有了贡献。其中最活跃的是:
Most active 5.5 employers
By changesets Intel 1655 11.5% (Unknown) 999 7.0% Red Hat 945 6.6% (None) 804 5.6% 780 5.4% AMD 709 4.9% Huawei Technologies 586 4.1% SUSE 549 3.8% Linaro 500 3.5% IBM 458 3.2% (Consultant) 395 2.8% Renesas Electronics 384 2.7% 359 2.5% NXP Semiconductors 336 2.3% Mellanox 304 2.1% Samsung 240 1.7% Arm 234 1.6% Texas Instruments 218 1.5% Canonical 197 1.4% NVIDIA 193 1.3%
By lines changed Intel 95531 14.2% (Unknown) 47298 7.0% Red Hat 34064 5.1% Arm 33500 5.0% 31617 4.7% (None) 27912 4.2% AMD 26259 3.9% Linaro 25838 3.8% (Consultant) 23358 3.5% Marvell 20777 3.1% SUSE 18321 2.7% IBM 17923 2.7% 17628 2.6% Samsung 14863 2.2% NXP Semiconductors 14197 2.1% Chelsio 13322 2.0% Renesas Electronics 12943 1.9% Huawei Technologies 11292 1.7% NVIDIA 10899 1.6% Mellanox 10704 1.6%
这个表单通常没有什么出人意料的地方,这一次也不例外。
A walk on the stable side
4.9 kernel在2016年12月11日发布,已经是3年之前了。当时在4.9 release里面合入了16,214个non-merge changeset。此后,到目前为止,4.9 kernel已经发布了210个stable update版本,额外加入了15,210个changeset,这个数字很大了,都可以算作是额外的一个开发周期了。这里有许多bug fix,并且并不是小改动:4.9.210比起4.9来说增加了80,000行。
对long-term stable kernel的贡献者名单跟普通kernel版本发布时的情况不太一样。下面是4.9发布之后stable update里面最活跃的贡献者:
Most active 4.9-stable contributors
Individuals Greg Kroah-Hartman 301 2.0% Eric Dumazet 285 1.9% Johan Hovold 224 1.5% Arnd Bergmann 216 1.4% Takashi Iwai 184 1.2% Dan Carpenter 174 1.1% Thomas Gleixner 141 0.9% Eric Biggers 121 0.8% Xin Long 93 0.6% Hans de Goede 81 0.5% Geert Uytterhoeven 80 0.5% Mark Rutland 78 0.5% Colin Ian King 70 0.5% Will Deacon 69 0.5% Cong Wang 69 0.5% Bart Van Assche 68 0.4% Dan Williams 68 0.4% Gustavo A. R. Silva 65 0.4% Peter Zijlstra 64 0.4% Theodore Ts'o 64 0.4%
Companies Red Hat 1353 8.9% 1344 8.8% (None) 1243 8.2% (Unknown) 1135 7.5% Intel 1044 6.9% SUSE 745 4.9% IBM 669 4.4% Oracle 462 3.0% Linaro 452 3.0% (Consultant) 425 2.8% Linux Foundation 418 2.7% Huawei Technologies 301 2.0% Mellanox 284 1.9% Arm 258 1.7% Broadcom 189 1.2% Samsung 187 1.2% Canonical 181 1.2% Linutronix 165 1.1% Renesas Electronics 149 1.0% AMD 147 1.0%
Greg Kroah-Hartman位居第一,不过其实其中有超过200个commit都只是修改每个stable release的版本号。其他的commit中,有50个是revert patch,用来去除一些后来发现有问题的stable change。把这些去掉的话,他应该就不在top 20的名单里了。
这个名单一眼看来就能看到其中有很多专注于core kernel的长期贡献者。他们在各个kernel release中可能并不是贡献最多的开发者,不过他们做了许多重大的fix,对我们非常重要。
在4.9到4.9.210之间合入的fix里面,只有2,775个包含了Reported-by tag,占总数的18%。考虑到大多数commit都是bug fix,这就说明许多bug报出来之后还是没有得到应有的credit荣誉。在4.9.x中得到credit的bug reporter如下:
Top 4.9.x bug reporters Syzbot 471 Dmitry Vyukov 98 Andrey Konovalov 79 Dan Carpenter 52 kbuild test robot 32 Hulk Robot 30 Fengguang Wu 26 Jianlin Shi 26 Ben Hutchings 24 Jann Horn 23 Al Viro 18 Guenter Roeck 18 Wen Xu 17 Arnd Bergmann 14 Eric Biggers 14 Anatoly Trosinenko 11 Alexander Potapenko 10 Li Shuang 10 Eric Dumazet 9 Tetsuo Handa 9 Pali Rohár 9
需要注意的是,Syzbot和Dmitry Vyukov其实代表了同一个来源,就是Syzbot robot,而且说明它非常善于查出kernel里面存在多年的bug。Fengguang Wu的kbuild test robot也是同样的情况,不过影响略小一点。
对一个kernel版本进行开发和改善稳定性,并不是在Linus Torvalds发布的那一天就突然停止了。其实真正的工作才刚刚开始。自从有软件开发这个行当以来,人们就一直在让开发者去fix bug而不是光产生新bug,这个斗争一直没有停过。好消息是过去几年里,开发社区在这方面做的越来越好了。目前哪怕是在新版本kernel发布之后大家的重心放到下一版本kernel的时候,开发、修复流程也仍然在快速进行。
全文完
LWN文章遵循CC BY-SA 4.0许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注LWN深度文章以及开源社区的各种新近言论~