|
|
Subscribe / Log in / New account

Some 5.5 kernel development statistics

By Jonathan Corbet
January 28, 2020
The 5.5 kernel was released on January 26. Over the course of this development cycle, it was occasionally said that the holidays were slowing contributions. At the end, though, 5.5 saw the merging of 14,350 non-merge changesets from 1,885 developers — not exactly a slow-moving cycle. Indeed, 5.5 just barely edged out 5.4 as the kernel with the most developers ever. Read on for our traditional look at where the contributions to 5.5 came from, along with a digression into the stable-update process.

Just under 590,000 lines of code were added for 5.5, while almost 272,000 were removed, for a net growth of 318,000 lines of code. Of the developers contributing to 5.5, 285 were contributing for the first time. The most active developers working on 5.5 were:

Most active 5.5 developers
By changesets
Chris Wilson2641.8%
Christoph Hellwig2211.5%
Yue Haibing1971.4%
Colin Ian King1441.0%
Thierry Reding1391.0%
Krzysztof Kozlowski1300.9%
Jens Axboe1240.9%
Arnaldo Carvalho de Melo1210.8%
Arnd Bergmann1200.8%
Geert Uytterhoeven1200.8%
Ville Syrjälä1090.8%
Kuninori Morimoto1060.7%
Alex Deucher910.6%
Takashi Iwai900.6%
Andy Shevchenko890.6%
Tony Lindgren860.6%
Andrii Nakryiko850.6%
zhengbin830.6%
Ben Dooks780.5%
Dmitry Torokhov760.5%
By changed lines
Ard Biesheuvel240063.6%
Haiyan Song201823.0%
Chris Wilson135982.0%
Dmitry Osipenko127451.9%
Hao Zheng112521.7%
Christoph Hellwig106521.6%
Jérôme Pouiller106051.6%
Potnuri Bharat Teja97461.5%
Jason A. Donenfeld86561.3%
Jiaxun Yang65541.0%
Mauro Carvalho Chehab62400.9%
Bhawanpreet Lakha59080.9%
Jens Axboe57090.8%
Thierry Reding52080.8%
Vladimir Oltean49600.7%
Zaibo Xu48490.7%
Adrian Hunter46680.7%
Andrii Nakryiko45710.7%
Nuno Sá45160.7%
Brendan Higgins44020.7%

One of the most reliable ways to get into the list of top contributors, it seems, is to work on a graphics driver; it is thus not surprising that Chris Wilson contributed the most changesets entirely through work on the Intel i915 driver. Christoph Hellwig did a lot of work in the XFS filesystem, the block layer, and the RISC-V architecture code. Yue Haibing and Colin Ian King both contributed cleanup patches all over the tree, while Thierry Reding worked mostly on the Tegra graphics driver.

In the "lines changed" column, Ard Biesheuvel worked almost entirely in the crypto subsystem; much of that work was aimed at enabling the merging of the WireGuard VPN code into 5.6. Haiyan Song contributed exactly two patches updating perf events data for Intel CPUs. Dmitry Osipenko worked on Tegra hardware support, and Hao Zheng contributed one big patch to the Marvell octeontx2 network driver.

The testing and reviewing numbers this time around look like this:

Test and review credits in 5.5
Tested-by
Andrew Bowers738.2%
Arnaldo Carvalho de Melo465.2%
Keerthy212.4%
Adam Ford212.4%
Yoshihiro Shimoda171.9%
Peter Geis141.6%
Hannes Reinecke121.3%
Stan Johnson121.3%
Aaron Brown121.3%
Sean Nyekjaer111.2%
Randy Dunlap111.2%
Reviewed-by
Darrick J. Wong2053.5%
Rob Herring1763.0%
Chris Wilson1422.4%
Christoph Hellwig1151.9%
Tvrtko Ursulin1091.8%
Alex Deucher941.6%
David Sterba871.5%
Andrew Lunn841.4%
Daniel Vetter731.2%
Christian König621.0%
Greg Kroah-Hartman611.0%

Only 797 changesets (5.5% of the total) carried Tested-by tags, while 4,939 changesets (34% of the total) had Reviewed-by tags. Two of the top testers, Andrew Bowers and Keerthy focus on testing Intel and TI-specific driver patches, respectively. The top reviewer, Darrick Wong, applied the Reviewed-by tag to XFS patches that, as the XFS maintainer, he also signed off on; most other subsystem maintainers do not follow that practice.

The most prolific bug reporters (and those who credited them) in this cycle were:

Reported-by credits in 5.5
Recipients
Hulk Robot16415.7%
Syzbot12512.0%
kbuild test robot1029.8%
Dan Carpenter323.1%
Linus Torvalds141.3%
Stephen Rothwell121.2%
Geert Uytterhoeven80.8%
Randy Dunlap80.8%
kernel test robot80.8%
Qian Cai80.8%
Yauheni Kaliuta80.8%
Arnaldo Carvalho de Melo70.7%
Johan Hovold70.7%
Christophe Leroy70.7%
coverity-bot70.7%
Creditors
zhengbin838.0%
YueHaibing696.6%
Eric Dumazet323.1%
Jens Axboe262.5%
Chris Wilson222.1%
Jérôme Pouiller181.7%
Paul E. McKenney161.5%
Takashi Iwai121.2%
Florian Westphal111.1%
Frederic Weisbecker111.1%
Andrii Nakryiko101.0%
Linus Torvalds90.9%

These numbers would indicate that over 1/3 of the bug reports for the kernel (of which 934 were credited in 5.5) are now coming from automated testing systems. Some of the reported bugs are more severe than others, but there is little doubt that having automated systems finding hundreds of bugs (that are subsequently fixed) each development cycle is good for the kernel as a whole.

A total of 231 companies (that we know about) support work on the 5.5 kernel. The most active employers this time around were:

Most active 5.5 employers
By changesets
Intel165511.5%
(Unknown)9997.0%
Red Hat9456.6%
(None)8045.6%
Google7805.4%
AMD7094.9%
Huawei Technologies5864.1%
SUSE5493.8%
Linaro5003.5%
IBM4583.2%
(Consultant)3952.8%
Renesas Electronics3842.7%
Facebook3592.5%
NXP Semiconductors3362.3%
Mellanox3042.1%
Samsung2401.7%
Arm2341.6%
Texas Instruments2181.5%
Canonical1971.4%
NVIDIA1931.3%
By lines changed
Intel9553114.2%
(Unknown)472987.0%
Red Hat340645.1%
Arm335005.0%
Google316174.7%
(None)279124.2%
AMD262593.9%
Linaro258383.8%
(Consultant)233583.5%
Marvell207773.1%
SUSE183212.7%
IBM179232.7%
Facebook176282.6%
Samsung148632.2%
NXP Semiconductors141972.1%
Chelsio133222.0%
Renesas Electronics129431.9%
Huawei Technologies112921.7%
NVIDIA108991.6%
Mellanox107041.6%

The employer table is generally unsurprising, and this month is no exception.

A walk on the stable side

The 4.9 kernel was released on December 11, 2016, just over three years ago. Some 16,214 non-merge changesets went into the 4.9 release. Since then, as of this writing, there have been 210 stable updates to 4.9, adding another 15,210 changesets — enough to make up another large development cycle. That is a lot of fixes, and they are not all small: 4.9.210 is 80,000 lines larger than 4.9 was.

The contributor picture for this long-term stable kernel is somewhat different than it was at release time. The following are the most active contributors to the updates — the releases that came out after 4.9:

Most active 4.9-stable contributors
Individuals
Greg Kroah-Hartman3012.0%
Eric Dumazet2851.9%
Johan Hovold2241.5%
Arnd Bergmann2161.4%
Takashi Iwai1841.2%
Dan Carpenter1741.1%
Thomas Gleixner1410.9%
Eric Biggers1210.8%
Xin Long930.6%
Hans de Goede810.5%
Geert Uytterhoeven800.5%
Mark Rutland780.5%
Colin Ian King700.5%
Will Deacon690.5%
Cong Wang690.5%
Bart Van Assche680.4%
Dan Williams680.4%
Gustavo A. R. Silva650.4%
Peter Zijlstra640.4%
Theodore Ts'o640.4%
Companies
Red Hat13538.9%
Google13448.8%
(None)12438.2%
(Unknown)11357.5%
Intel10446.9%
SUSE7454.9%
IBM6694.4%
Oracle4623.0%
Linaro4523.0%
(Consultant)4252.8%
Linux Foundation4182.7%
Huawei Technologies3012.0%
Mellanox2841.9%
Arm2581.7%
Broadcom1891.2%
Samsung1871.2%
Canonical1811.2%
Linutronix1651.1%
Renesas Electronics1491.0%
AMD1471.0%

Greg Kroah-Hartman's position at the top of the individual list is a bit deceptive; over 200 of those commits are simply setting the version numbers for each stable release. Of the remaining commits, 50 are reverts of "stable" changes that proved to be not such a good idea. Take those commits out, and he would not have made it into the top 20 changeset contributors.

The picture that emerges in general is one containing many long-term contributors to the core kernel; they may not be the top contributors from one release to the next, but they are creating the important fixes that we all depend on.

Only 2,775 of the fixes merged between 4.9 and 4.9.210 contain a Reported-by tag; that is about 18% of the total. Given that most of the commits in this series are meant to be bug fixes, that suggests that a lot of bug reports are still going without credit. The reporters who were credited for fixes going into 4.9.x were:

Top 4.9.x bug reporters
Syzbot471
Dmitry Vyukov98
Andrey Konovalov79
Dan Carpenter52
kbuild test robot32
Hulk Robot30
Fengguang Wu26
Jianlin Shi26
Ben Hutchings24
Jann Horn23
Al Viro18
Guenter Roeck18
Wen Xu17
Arnd Bergmann14
Eric Biggers14
Anatoly Trosinenko11
Alexander Potapenko10
Li Shuang10
Eric Dumazet9
Tetsuo Handa9
Pali Rohár9

Bearing in mind that Syzbot and Dmitry Vyukov are one and the same in this context, it is clear that the Syzbot robot, in particular, has been highly effective in finding bugs that have been in the kernel for a long time. The same is true, to a lesser degree, for Fengguang Wu and his "kbuild test robot".

The process of developing and stabilizing a kernel clearly does not abruptly end the day that Linus Torvalds releases it; one might argue that much of the real work has just begun. Getting developers to focus on fixing bugs rather than developing new ones has been a struggle for almost as long as there has been software; the good news is that, over the years, the development community has gotten better at doing that work. The development process now continues at a high speed, even after a new kernel is released and the focus moves on to the next development cycle.

Index entries for this article
KernelReleases/5.5


to post comments

Two-Armed?

Posted Jan 28, 2020 13:49 UTC (Tue) by tok (guest, #44428) [Link] (2 responses)

Um, why are there two "Arm" entries in the 5.5 employers by-changed-lines list?

Arm 24006 3.6%
....
Arm 11817 1.8%

*sigh*

Posted Jan 28, 2020 14:07 UTC (Tue) by corbet (editor, #1) [Link] (1 responses)

Because, well, you know, "ARM" is not the same as "Arm", and the company changed its view of capitalization a little while back. I've straightened that out and rerun the numbers; apologies for the confusion. We should have caught that one.

*sigh*

Posted Jan 28, 2020 15:23 UTC (Tue) by tok (guest, #44428) [Link]

I suspected as much. Cheers for the quick update.

Some 5.5 kernel development statistics

Posted Jan 28, 2020 14:24 UTC (Tue) by error27 (subscriber, #8346) [Link] (1 responses)

I'm sort of surprised how many of my patches make it back to stable kernels. I suspect it's because my patches are one liners which are easy to apply. Maybe Sasha's machine learning system just likes the way I write commit messages.

Some 5.5 kernel development statistics

Posted Jan 28, 2020 19:43 UTC (Tue) by sashal (✭ supporter ✭, #81842) [Link]

Your patches are usually:

1. Real fixes
2. The commit message clearly indicates they are clear fixes
3. The code is very short and has a construct which is similar to other fixes (usually adds a NULL check and such)


Copyright © 2020, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds