LWN: 5.11内核数据分析!
关注了就能看到更多这么棒的文章哦~
Development statistics for the 5.11 kernel
By Jonathan Corbet
February 15, 2021
https://lwn.net/Articles/845831/
Linux kernel 5.11 在 2 月 14 日正式发布了,这可以算得上人们期待的一个浪漫情人节礼物了。这一版的内核拥有来自 1,912 位开发者的 14,340 个改动。虽然算不上是近来最繁忙的周期,不过里面内容还是很丰富的。下面是我们的传统节目,对 5.11 合入代码进行一次分析。
5.x 系列内核的历史数据如下:
Release | Changesets | Developers |
---|---|---|
5.0 | 12,808 | 1,760 |
5.1 | 13,034 | 1,727 |
5.2 | 14,024 | 1,784 |
5.3 | 14,605 | 1,882 |
5.4 | 14,619 | 1,877 |
5.5 | 14,350 | 1,885 |
5.6 | 12,665 | 1,712 |
5.7 | 13,901 | 1,878 |
5.8 | 16,306 | 1,991 |
5.9 | 14,858 | 1,917 |
5.10 | 16,174 | 1,971 |
5.11 | 14,340 | 1,912 |
因此 5.11 开发周期看起来算是很普通的,也就是 5.x 系列的中游水平。参与进来的开发者数量仍然保持在了超过 1,900 位的水准,其中 280 位开发者是首次参与贡献。5.11 kernel 比起 5.10 来增加了 608,000 行代码。
5.11 中最活跃的开发者如下:
Most active 5.11 developers
By changesets Lee Jones 497 3.5% Krzysztof Kozlowski 195 1.4% Thomas Gleixner 148 1.0% Christophe Leroy 135 0.9% Chuck Lever 133 0.9% Christoph Hellwig 132 0.9% Sakari Ailus 126 0.9% Arnd Bergmann 119 0.8% Ville Syrjälä 119 0.8% Jonathan Cameron 115 0.8% Gustavo A. R. Silva 93 0.6% Tom Rix 90 0.6% Andy Shevchenko 89 0.6% Geert Uytterhoeven 87 0.6% Johannes Berg 86 0.6% Alex Elder 83 0.6% Takashi Iwai 83 0.6% Christian König 82 0.6% Colin Ian King 81 0.6% Trond Myklebust 81 0.6%
By changed lines Huang Rui 269436 28.0% Bhawanpreet Lakha 81661 8.5% Lee Jones 17973 1.9% Oded Gabbay 14281 1.5% Jiaxin Yu 13408 1.4% Johannes Berg 9764 1.0% Sakari Ailus 9305 1.0% Ilya Dryomov 7528 0.8% Srinivas Kandagatla 6072 0.6% Jonathan Cameron 5958 0.6% Fabio Estevam 5913 0.6% Christian König 5789 0.6% Roman Li 5370 0.6% Arnd Bergmann 5084 0.5% Chuck Lever 4681 0.5% Thomas Gleixner 4672 0.5% Christoph Hellwig 4612 0.5% Jin Yao 4577 0.5% Jarkko Sakkinen 4575 0.5% Peter Geis 4521 0.5%
Lee Jones 是这次许多 patch 的作者,主要都是在修正代码库中各处的编译器 warning。Krzysztof Kozlowski 则继续对 driver 和 devicetree 文件进行清理和提供小改进。Thomas Gleixner 则进行了许多底层改进,包括 kmap_local() 实现(https://lwn.net/Articles/836144/)。Christophe Leroy 则在 PowerPC 架构代码方面进行了许多改动,Chuck Lever 则贡献了许多 NFS-server 改动(这里基本都是他的修改)。
目前为止增加代码最多的改动,来自 Huang Rui,添加了另一套 amdgpu 头文件,很多很多头文件。Bhawanpreet Lakha 也在 AMD graphics drivers 里进行了许多改动. Oded Gabbay 为 Habana "Gaudi" 处理器增加了支持, 同样不可避免地引入了许多头文件, 还有 Jiaxin Yu 加入了 mt8192 audio driver.
5.11 kernel 中有 225 个公司参与进来(这是我们能识别出来的部分)。这个数字也算正常。其中最活跃的公司们是:
Most active 5.11 employers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
这次仍然没有什么出乎意料的内容。真要说这里有什么变化趋势正在发生的话,那么可以判断说硬件厂商的贡献在逐渐增加,相较于软件公司以及支持类型的公司。
Drilling down
上面的数字都是针对 kernel source tree 这个整体来统计的。仔细看到各个子系统内部的话,情况就会有些不同。这方面的数据会在每个 release 中都发生更多变化,因此比较合理的做法是按照更长周期来审查这个数据。下面的数字就是从 2020 年 1 月的 5.5 release 以来积累到现在的情况。也就是说,这些数据基本可以看作是去年合入的工作的统计。
大多数的核心内核代码是在 ./kernel 这个目录中。2020 年在这个目录中提供了活跃贡献的开发者和公司分别是:
Most active (kernel) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
过去几年里面 Facebook 这边拥有了越来越多的 core-kernel 开发者,目前 Facebook 比起其他公司来说在 kernel 目录中贡献了更多的 patch。
不过 memory-management 内存管理部分的代码(位于 mm 子目录)的情况则有些不同:
Most active (mm) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
文件系统部分的情况如下:
Most active (fs) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
去年 filesystem 里的相关工作主要是跟快速演进的 io_uring 子系统和核心代码有关。此外,XFS, Btrfs, NFS 的开发也都很活跃。
networking 网络子系统里的情况如下:
Most active (net) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
这个结果挺有意思。比如,这里 Chuck Lever 也出现了,主要是因为他贡献了许多 RPC 代码,用在 NFS 子系统里。而 Christoph Hellwig 则主要是因为他在代码库中其他地方的改动,导致也在这里进行了不少修改。这两位都不是网络领域的核心开发者。Paolo Abeni 和 Florian Westphal 两位都是在做 multipath TCP 代码的 upstream 工作,已经进行了很长时间了。
我们能看到一个结论,core-kernel 的工作主要集中在少数几个公司中。也就是说跟过去几年的情况已经很不一样了。这也说明,越来越多的公司意识到它们对 Linux 的改动不应该再局限在自己硬件的相关子系统了。这对于 kernel 的长期延续方面来说,应该是一个好消息。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~