资讯详情

LWN:查看5.17 的开发数据!

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

A look at some 5.17 development statistics

By Jonathan CorbetMarch 21, 2022DeepL assisted translationhttps://lwn.net/Articles/887559/

在 5.17 开发周期结束时,13038 个 non-merging changeset 已经进入 mainline。这比 5.16 版本(14190 个 changeset)数量少,但远远高于 5.15 版本(12337 个)。换句话说,这是一个典型的核心版本。这个版本的工作来源也是如此。

5.17 修改版本是由的 1900 比 5.16 版本的 1988 少名字。在这些开发者中,有 268 人们在这个周期中首次贡献了他们的核心。这次最活跃的开发者是:

Most active 5.17 developers
By changesets
Christoph Hellwig 168 1.3%
Eric Dumazet 150 1.2%
MauroCarvalhoChehab 142 1.1%
Hans de Goede 139 1.1%
Andy Shevchenko 132 1.0%
Martin Kaiser 132 1.0%
Christophe Jaillet 125 1.0%
Ville Syrj?l? 123 0.9%
Thierry Reding 114 0.9%
Sean Christopherson 109 0.8%
Thomas Gleixner 105 0.8%
Matthew Wilcox 101 0.8%
Andrii Nakryiko 97 0.7%
Nicholas Piggin 96 0.7%
Michael Straube 92 0.7%
David Howells 89 0.7%
Lad Prabhakar 86 0.7%
Dmitry Osipenko 82 0.6%
Rob Herring 76 0.6%
Vladimir Oltean 74 0.6%
By changed lines
David Howells 26567 4.4%
Thierry Reding 16552 2.7%
Christoph Hellwig 10734 1.8%
Luiz Augusto von Dentz 10106 1.7%
Mauro Carvalho Chehab 10010 1.7%
Vinod Koul 9363 1.5%
Zong-Zhe Yang 8135 1.3%
Svyatoslav Ryhel 7204 1.2%
Horatiu Vultur 6962 1.1%
Hans de Goede 6537 1.1%
Chengchang Tang 6255 1.0%
AngeloGioacchino Del Regno 6198 1.0%
Andrzej Pietrasiewicz 6035 1.0%
Dmitry Osipenko 6013 1.0%
Amit Cohen 5949 1.0%
Daniel Bristot de Oliveira 5598 0.9%
Jie Wang 5553 0.9%
Ville Syrjälä 5451 0.9%
Jacob Keller 4943 0.8%
Emmanuel Grumbach 4615 0.8%

Christoph Hellwig 继续做了大量的重构工作,主要是在 block 和 filesystem layer;这项工作再次使他成为改动最多的贡献者。Eric Dumazet 一如既往地忙着改进 network stack;他还在这个周期内增加了 reference-count tracking 的基础设施。Mauro Carvalho Chehab 在 media 子系统中做了大部分工作,Hans de Goede 主要在 graphics layer(包括这次增加了对隐私屏幕的通用支持),Andy Shevchenko 在整个驱动子系统中做了大量清理工作。

David Howells 通过重写和替换网络文件系统使用的 caching 层,从而在 "lines changed" 一栏中名列前茅。Thierry Reding 贡献了大量的 Tegra SoC 硬件支持代码,Luiz Augusto von Dentz 在蓝牙 host-controller 接口代码上做了大量的工作。

这次最活跃的 tester 和 reviewer 是:

Test and review credits in 5.17
Tested-by
Daniel Wheeler 105 10.1%
Gurucharan G 51 4.9%
Nishanth Menon 41 3.9%
Michael Kelley 31 3.0%
Konrad Jankowski 31 3.0%
Sebastian Andrzej Siewior 21 2.0%
Juergen Gross 19 1.8%
Wolfram Sang 17 1.6%
Bean Huo 16 1.5%
Tony Brelinski 14 1.3%
Valentin Schneider 11 1.1%
Arnaldo Carvalho de Melo 10 1.0%
Sachin Sant 10 1.0%
Reviewed-by
Rob Herring 175 2.9%
Christoph Hellwig 138 2.3%
Andy Shevchenko 104 1.7%
David Sterba 96 1.6%
Jason Gunthorpe 91 1.5%
Pierre-Louis Bossart 84 1.4%
Jeff Layton 83 1.4%
Kai Vehmanen 68 1.1%
Greg Kroah-Hartman 66 1.1%
Krzysztof Kozlowski 65 1.1%
Ranjani Sridharan 65 1.1%
Darrick J. Wong 62 1.0%
Ville Syrjälä 59 1.0%

这些名字中的许多人已经多次在这些表格中出现了。最大的变动可能是 Andy Shevchenko 的出现,他的 Reviewed-by tag 在整个驱动子系统的许多 patch 上都有。

5.17 的工作得到了 245 个雇主(我们能确定的部分)的支持;这也是近期内核的一个典型数字。最活跃的雇主是:

Most active 5.17 employers
By changesets
Intel 1510 11.6%
(Unknown) 975 7.5%
Red Hat 894 6.9%
Google 878 6.7%
(None) 572 4.4%
AMD 490 3.8%
Huawei Technologies 481 3.7%
Linaro 452 3.5%
NVIDIA 438 3.4%
SUSE 425 3.3%
Facebook 388 3.0%
(Consultant) 381 2.9%
IBM 316 2.4%
Oracle 265 2.0%
Renesas Electronics 245 1.9%
Arm 217 1.7%
Alibaba 205 1.6%
NXP Semiconductors 186 1.4%
Qualcomm 185 1.4%
Collabora 150 1.2%
By lines changed
Intel 76222 12.6%
Red Hat 56565 9.3%
(Unknown) 39769 6.6%
NVIDIA 32721 5.4%
Huawei Technologies 30039 5.0%
Google 24971 4.1%
(None) 21917 3.6%
AMD 21133 3.5%
Linaro 20866 3.4%
Qualcomm 20116 3.3%
(Consultant) 18397 3.0%
SUSE 16841 2.8%
Facebook 14405 2.4%
Collabora 13845 2.3%
Realtek 11255 1.9%
Microchip Technology 9613 1.6%
IBM 8974 1.5%
NXP Semiconductors 8039 1.3%
SoMainline 7789 1.3%
Renesas Electronics 7767 1.3%

再一次,这里没有什么惊喜。

Old bugs

虽然像 5.17 这样的发布版本带来了一长串的新功能,但它也包括对旧有 bug 的 fix。有各种方法来计算这些 bug 到底存在了多长时间,但有一个指标更加容易计算:5.17 中有多少 patch 被 backport 到以前内核的 stable update 中了?例如,4.19 内核是在 2018 年 10 月发布的,所以任何 backport 到 4.19 stable update 中的 patch 都可以认为所 fix 的问题至少已经存在了那么久了。

查看 stable 系列中每个 commit 的 mainline commit ID,看看它是否是 5.17 的提交,这是一个非常容易的任务。事实上,同样的计算也可以对较早期的内核来进行,结果是这样的:

0a5080b486a2b99183b58404cbe6beef.png

对于每一对 mainline/stable-update ,这个表格中的那一条都显示了有多少 patch 是从该 mainline 版本 backport 到 stable 系列的,以及该 stable 系列的所有 patch 中来自该 mainline 版本的百分比。因此,比如说我们可以看到基本上所有 backport 到 5.16 的 patch 都来自 5.17 —— 这是一个不会让大家感到惊讶的结论。(这并不是百分之百准确的,因为总有一些 patch 没有被直接 backport,或者也许只是 version tag)。

仔细阅读这些数字可以发现,随着时间的推移,需要在较早的 stable update 中 fix 的 bug 数量确实在减少,这一点大家可以很容易地理解。但是它绝对没有下降到零;仍然有 patch 从 5.17 版本 backport 到 4.4 版本的内核(是六年前发布的),直到该内核停止支持为止。纵观这些数字,5.17 并没有什么特别之处;每个 mainline 版本都在 fix 多年来一直存在的一些错误。

当然,这里有许多重要的注意事项。例如,backport 的 patch 可能是在 fix 其他 backport patch 中的错误,在这种情况下,这些 bug 其实是更加新的版本里面才有的,而不是当初那个版本就有的。正如过去记录的那样,stable 内核的 regression rate 从 3% 到 12% 不等,取决于人们的计算方法。还有一个事实,并非所有的 backport patch 都是 bug fix,例如有些 patch 增加了 device ID 或提高了性能。

也有一些是对硬件 bug 的修复。例如,大约有 30 个刚刚 backport 的 5.17 patch 是针对 Spectre 漏洞里的 branch history injection 的。把这些归结为对旧内核中的 bug fix 的话是有些不公平的,但无论如何,它们是需要 fix 的问题。

这些因素都表明,上述数字不是那么准确,但不会影响根本结论。

总的来说,5.17 是另一个典型的、相对平平无奇的内核开发周期。内核开发事业继续按照可预测的时间表在发布新版本。截至目前,linux-next 包含了超过 12,800 个 changeset,等待着被转入 5.18 的 mainline,所以看起来这个过程不会很快停止。

A postscript

因为内核开发过程相对很稳定了,我们这种总结报告随着时间的推移变得越来越无趣,这里没有太多的新闻可供发现了。因此编者再一次对于为每个内核版本制作这些报告的价值感到怀疑。更多时候,它们看起来就像一堆模板,加上一些侧面的调查,试图让它们更有趣。是不是应该停止,改为在每个 long-term-stable release 中发表全年报告,是否会更有用?如果你对这个问题有什么看法,请随时通过评论或发邮件给 lwn@lwn.net 来让我们知道。

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

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

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

标签: 召陵智能压力变送器keller

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台