LWN:查看5.17 的开发数据!

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

A look at some 5.17 development statistics

By Jonathan Corbet
March 21, 2022
DeepL assisted translation
https://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 Hellwig1681.3%
Eric Dumazet1501.2%
Mauro Carvalho Chehab1421.1%
Hans de Goede1391.1%
Andy Shevchenko1321.0%
Martin Kaiser1321.0%
Christophe Jaillet1251.0%
Ville Syrjälä1230.9%
Thierry Reding1140.9%
Sean Christopherson1090.8%
Thomas Gleixner1050.8%
Matthew Wilcox1010.8%
Andrii Nakryiko970.7%
Nicholas Piggin960.7%
Michael Straube920.7%
David Howells890.7%
Lad Prabhakar860.7%
Dmitry Osipenko820.6%
Rob Herring760.6%
Vladimir Oltean740.6%
By changed lines
David Howells265674.4%
Thierry Reding165522.7%
Christoph Hellwig107341.8%
Luiz Augusto von Dentz101061.7%
Mauro Carvalho Chehab100101.7%
Vinod Koul93631.5%
Zong-Zhe Yang81351.3%
Svyatoslav Ryhel72041.2%
Horatiu Vultur69621.1%
Hans de Goede65371.1%
Chengchang Tang62551.0%
AngeloGioacchino Del Regno61981.0%
Andrzej Pietrasiewicz60351.0%
Dmitry Osipenko60131.0%
Amit Cohen59491.0%
Daniel Bristot de Oliveira55980.9%
Jie Wang55530.9%
Ville Syrjälä54510.9%
Jacob Keller49430.8%
Emmanuel Grumbach46150.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 Wheeler10510.1%
Gurucharan G514.9%
Nishanth Menon413.9%
Michael Kelley313.0%
Konrad Jankowski313.0%
Sebastian Andrzej Siewior212.0%
Juergen Gross191.8%
Wolfram Sang171.6%
Bean Huo161.5%
Tony Brelinski141.3%
Valentin Schneider111.1%
Arnaldo Carvalho de Melo101.0%
Sachin Sant101.0%
Reviewed-by
Rob Herring1752.9%
Christoph Hellwig1382.3%
Andy Shevchenko1041.7%
David Sterba961.6%
Jason Gunthorpe911.5%
Pierre-Louis Bossart841.4%
Jeff Layton831.4%
Kai Vehmanen681.1%
Greg Kroah-Hartman661.1%
Krzysztof Kozlowski651.1%
Ranjani Sridharan651.1%
Darrick J. Wong621.0%
Ville Syrjälä591.0%

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

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

Most active 5.17 employers
By changesets
Intel151011.6%
(Unknown)9757.5%
Red Hat8946.9%
Google8786.7%
(None)5724.4%
AMD4903.8%
Huawei Technologies4813.7%
Linaro4523.5%
NVIDIA4383.4%
SUSE4253.3%
Facebook3883.0%
(Consultant)3812.9%
IBM3162.4%
Oracle2652.0%
Renesas Electronics2451.9%
Arm2171.7%
Alibaba2051.6%
NXP Semiconductors1861.4%
Qualcomm1851.4%
Collabora1501.2%
By lines changed
Intel7622212.6%
Red Hat565659.3%
(Unknown)397696.6%
NVIDIA327215.4%
Huawei Technologies300395.0%
Google249714.1%
(None)219173.6%
AMD211333.5%
Linaro208663.4%
Qualcomm201163.3%
(Consultant)183973.0%
SUSE168412.8%
Facebook144052.4%
Collabora138452.3%
Realtek112551.9%
Microchip Technology96131.6%
IBM89741.5%
NXP Semiconductors80391.3%
SoMainline77891.3%
Renesas Electronics77671.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 深度文章以及开源社区的各种新近言论~

e49f8055ddf6bd595ee6370b228c1b25.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值