LWN:5.8内核数据分析!

2023-11-04 00:59
文章标签 内核 数据分析 5.8 lwn

本文主要是介绍LWN:5.8内核数据分析!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

Some statistics from the 5.8 kernel cycle

By Jonathan Corbet
August 3, 2020

8月2日,Linus Torvalds宣布了5.8 kernel正式发布。标志着9周的开发周期的结束。这期间,有16,306个changeset合入了mainline,这个数字又创新高,超过了之前2016年12月的4.9版本时的记录,虽然仅仅超出了92个changeset。这轮开发周期算是很繁忙了。现在也是时候来进行我们的传统项目,看一下这些工作都来自哪里。

总共有1,991位开发者对5.8版本有贡献,这也是一个新纪录。其中304位是首次参与。总共增加了924,000行代码,移除了371,000行,净增553,000行。最活跃的开发者是:

Most active 5.8 developers
By changesets
Mauro Carvalho Chehab5493.4%
Christoph Hellwig3542.2%
Andy Shevchenko2231.4%
Jason Yan2051.3%
Chris Wilson1991.2%
Jérôme Pouiller1751.1%
Thomas Gleixner1561.0%
Gustavo A. R. Silva1360.8%
Masahiro Yamada1330.8%
Miquel Raynal1250.8%
Leon Romanovsky1140.7%
Sean Christopherson1090.7%
Geert Uytterhoeven1010.6%
Colin Ian King1010.6%
Daniel Vetter990.6%
Al Viro980.6%
Peter Zijlstra950.6%
Christophe Leroy930.6%
Lorenzo Bianconi890.5%
Serge Semin870.5%
By changed lines
Mauro Carvalho Chehab27261425.8%
Oded Gabbay806037.6%
Yan-Hsuan Chuang157981.5%
Arnd Bergmann130821.2%
Jack Wang128951.2%
Thomas Bogendoerfer111611.1%
Christoph Hellwig109401.0%
Omer Shpigelman108611.0%
Ryder Lee100761.0%
Chris Wilson86820.8%
David Howells81300.8%
Serge Semin75200.7%
Andrii Nakryiko61890.6%
Thomas Gleixner56950.5%
Marco Elver56190.5%
Peter Zijlstra55330.5%
Boris Brezillon54510.5%
Leon Romanovsky53990.5%
Ping-Ke Shih51730.5%
Bryan O'Donoghue49530.5%

Mauro Carvalho Chehab在changeset数量和行数两方面都登顶了。他的工作主要集中在文档方面,把许多文件改为了RST格式,重写了video4linux2 user space manual,不过他也做了很多工作来复活atomisp camera驱动,此前已经从staging tree移除了。Christoph Hellwig在kernel的memory-management,filesystem, block subsystem等领域做了很多工作。Andy Shevchenko对许多驱动进行了改进。Jason Yan在kernel里面多处进行了代码清理。Chris Wilson仍然在改进i915 graphics driver。

按行数来算的话,Oded Gabbay为Habana Gaudi处理器增加了许多自动生成的寄存器定义信息。Yan-Hsuang则为Realtek rtw88 wireless driver增加了许多机器生成的数据,看起来不像源代码,倒像是二进制数据。Arnd Bergmann进行了许多清理工作,其中包括删除从来没有实现好的sh5 subarchitecture。Jack Wang贡献了一个rndb driver(这是一个使用RDMA的network block device)。

尽管贡献者人数创了新高,他们背后的公司数量基本未变,仍是213个。多数工作来自:

Most active 5.8 employers
By changesets
Intel193911.9%
Huawei Technologies13998.6%
(Unknown)12317.5%
Red Hat10796.6%
(None)10166.2%
Google7914.9%
IBM5423.3%
(Consultant)5153.2%
Linaro5133.1%
AMD5033.1%
SUSE4632.8%
Mellanox4452.7%
NXP Semiconductors3302.0%
Renesas Electronics3222.0%
Oracle2521.5%
Code Aurora Forum2481.5%
Facebook2471.5%
Arm2391.5%
Silicon Labs1751.1%
Linux Foundation1711.0%
By lines changed
Huawei Technologies29336527.8%
Habana Labs932138.8%
Intel882888.4%
(None)476554.5%
(Unknown)367863.5%
Linaro363223.4%
Red Hat347373.3%
Google342093.2%
IBM242332.3%
Mellanox233642.2%
Realtek227672.2%
AMD214112.0%
NXP Semiconductors213282.0%
(Consultant)154181.5%
Facebook148741.4%
MediaTek147511.4%
SUSE136591.3%
1&1 IONOS Cloud132191.3%
Code Aurora Forum118651.1%
Renesas Electronics110771.1%

多数内容看起来都很眼熟,不过华为(Huawei)则意外地来到了第一名的位置。主要是来源于上面讲过的Chehab的工作,不过Huawei还是有许多更加重要的代码贡献。目前世界上有股势力一直在试图冻结华为的市场竞争力,但是它在社区里面仍然非常活跃,这一轮里面有92位开发者做出贡献。华为的工作主要集中在下面这些子系统:

SubsystemChangesets
Documentation226
drivers/net226
drivers/staging222
fs73
drivers/media62
drivers/scsi62
drivers/gpu49
net49
include38
sound22
security21
kernel18

总之,华为的patch中的907个(占65%)是在driver subsystem里面的,此外也有许多工作分布在kernel中的其他领域。

Linux kernel很依赖人们来进行测试并报出bug。开发者无法测试所有的硬件组合以及工作场景。在测试领域最活跃的贡献者如下:

Test and report credits in 5.8
Tested-by
Aaron Brown979.1%
Andrew Bowers908.5%
Arnaldo Carvalho de Melo535.0%
Hoan Tran212.0%
Marek Szyprowski191.8%
Serge Semin161.5%
David Heidelberg141.3%
Peter Geis141.3%
Jasper Korten131.2%
Tomasz Maciej Nowak121.1%
Reported-by
Hulk Robot24319.8%
kernel test robot17814.5%
Syzbot705.7%
Dan Carpenter332.7%
Stephen Rothwell262.1%
Randy Dunlap201.6%
Guenter Roeck131.1%
Qian Cai110.9%
Greg Kroah-Hartman80.7%
Lars-Peter Clausen80.7%

绝大多数bug都还是来自自动测试系统的,不过此外也还是有许多人做出了贡献的。

Patch review也非常重要,这也是我们希望减少今后报出bug的首先该做的事情。尽管不是所有的review结果都有Reviewed-by tag,但是这个数字还是有参考意义的:

Review credits in 5.8
Rob Herring1832.6%
Christoph Hellwig1792.6%
Alexandre Chartre1281.8%
Andy Shevchenko1251.8%
Ranjani Sridharan1211.7%
Andrew Lunn1131.6%
Darrick J. Wong1071.5%
Florian Fainelli941.4%
Jiri Pirko881.3%
David Sterba831.2%
Hannes Reinecke811.2%
Ursula Braun791.1%
Alex Deucher781.1%
Stephen Boyd781.1%
Kees Cook781.1%

在5.8版本中新增的这些patch中,有5,470个(占比34%)包含Reviewed-by tag。过去几个kernel版本中基本上带有这类tag的patch占所有合入的patch的比例都是差不多1/3的样子。

总的来看,内核开发社区仍然在高速发展。全球性的疫情就算是有影响,那么看起来也是加速了kernel的开发进度。很想看看到5.9版本的时候这个趋势是否还能保持。请大家等待10月初的时候的答案吧!

全文完

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

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

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

这篇关于LWN:5.8内核数据分析!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342112

相关文章

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

Ubuntu22.04回退系统内核

文章目录 起因回退操作卸载内核禁止内核升级 起因 最近因为系统内核自动升级,导致显卡驱动检测不到,炼丹环境被破坏。无奈只能重装驱动,于是跟着手册操作发现驱动要求的是内核版本是5.15.0-25-generic,而我通过uname -r发现这时候的内核版本是6.8.0-40-generic,看来只能回退了。 我搜索了网上很多的文章,没有一篇文章能够完全解决这个问题,所以在我多次尝

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

linux 内核提权总结(demo+exp分析) -- 任意读写(四)

hijack_modprobe_path篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     原理同hijack_prctl, 当用户执行错误格式的elf文件时内核调用call_usermod

linux 内核提权总结(demo+exp分析) -- 任意读写(三)

hijack_prctl篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   prctl函数: 用户态函数,可用于定制进程参数,非常适合和内核进行交互 用户态执行prctl函数后触发prctl系统

linux 内核提权总结(demo+exp分析) -- 任意读写(二)

hijack_vdso篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     vdso: 内核实现的一个动态库,存在于内核,然后映射到用户态空间,可由用户态直接调用 内核中的vdso如果被修改