5.3 Kernel development cycle statistics

This article brought to you by LWN subscribers Subscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible.

It's that time of the development cycle again: work on the 5.3 kernel is winding down with an expected final release date of September 15. Read on for LWN's traditional look at where the code in 5.3 came from in this relatively busy development cycle.

As of this writing, 14,435 non-merge changesets have been pulled into the mainline repository for 5.3; these changes were contributed by 1,846 developers. That makes 5.3 one of the busier cycles in recent times:

Release Changesets Developers 4.15 14,866 1,801 4.16 13,630 1,805 4.17 13,541 1,713 4.18 13,283 1,728 4.19 14,043 1,752 4.20 13,884 1,749 5.0 12,808 1,757 5.1 13,034 1,737 5.2 14,024 1,783 5.3 14,435 1,846

The traffic in 5.3 thus did not set a new record; indeed, 4.9, with 16,214 changesets merged, seems likely to hold that record for a while yet. The 1,846 developers contributing during this cycle is a new high, though, suggesting that the kernel community is still growing; 256 of those developers were first-time contributors.

Those 1,846 developers deleted an impressive 389,000 lines of code from the kernel during this cycle. They also added 973,000 lines, though, so the kernel grew by 584,000 lines of code. The most active developers this time around were:

Most active 5.3 developers By changesets Kuninori Morimoto 271 1.9% Christoph Hellwig 262 1.8% Mauro Carvalho Chehab 205 1.4% Nishka Dasgupta 162 1.1% Chris Wilson 160 1.1% Greg Kroah-Hartman 145 1.0% Yue Haibing 137 0.9% Masahiro Yamada 130 0.9% Gustavo A. R. Silva 128 0.9% Geert Uytterhoeven 120 0.8% Takashi Sakamoto 113 0.8% Wolfram Sang 101 0.7% Arnaldo Carvalho de Melo 99 0.7% Colin Ian King 98 0.7% Arnd Bergmann 96 0.7% Adrian Hunter 96 0.7% Russell King 94 0.7% David Howells 92 0.6% Hawking Zhang 90 0.6% Maxime Ripard 84 0.6% By changed lines Hawking Zhang 364371 31.2% Arnd Bergmann 84993 7.3% Mauro Carvalho Chehab 34041 2.9% Harry Wentland 33568 2.9% Jason Gunthorpe 22421 1.9% Chris Wilson 17382 1.5% Richard Fitzgerald 15791 1.4% Linus Walleij 13392 1.1% Greg Kroah-Hartman 11713 1.0% Bernard Metzler 10963 0.9% Christoph Hellwig 10844 0.9% Pawel Laszczak 7702 0.7% Hannes Reinecke 7255 0.6% Andrii Nakryiko 7143 0.6% Maxime Ripard 6709 0.6% David Ahern 6557 0.6% Daniele Ceraolo Spurio 5781 0.5% Darrick J. Wong 5776 0.5% Kuninori Morimoto 4717 0.4% Thomas Zimmermann 4706 0.4%

The biggest contributor of changesets this time around was Kuninori Morimoto, who did a lot of work updating code in the sound subsystem. Christoph Hellwig made significant improvements across the core kernel and the block subsystem, Mauro Carvalho Chehab converted a vast number of documentation files to the restructured text format, Nishka Dasgupta fixed a large number of Coccinelle warnings, and Chris Wilson worked extensively on the Intel i915 graphics driver.

Hawking Zhang was responsible for nearly one-third of the changed lines in 5.3; as is so often the case, the new code is yet another set of register definitions for the amdgpu graphics driver. Arnd Bergmann removed the old ISDN subsystem and, as usual, made improvements across the kernel tree. Harry Wentland also contributed AMD graphics driver changes, and Jason Gunthorpe removed some obsolete RDMA code.

The top testers and reviewers this time around were:

Test and review credits in 5.3 Tested-by Andrew Bowers 115 12.0% Arnaldo Carvalho de Melo 27 2.8% Leo Yan 24 2.5% Tony Lindgren 24 2.5% Tim Schumacher 19 2.0% Aaron Brown 18 1.9% Andre Przywara 18 1.9% Keerthy 17 1.8% Nick Desaulniers 16 1.7% Hans de Goede 16 1.7% Shijith Thotton 16 1.7% Reviewed-by Alex Deucher 193 3.3% Rob Herring 167 2.8% Chris Wilson 115 1.9% Christoph Hellwig 108 1.8% Hawking Zhang 100 1.7% Simon Horman 93 1.6% Darrick J. Wong 91 1.5% Andrew Lunn 90 1.5% Tvrtko Ursulin 79 1.3% Geert Uytterhoeven 78 1.3% Maarten Lankhorst 77 1.3%

The biggest collector of Tested-by credits is Andrew Bowers, a developer who has never contributed a patch to the kernel, but who seemingly does extensive testing of changes to various Intel drivers. Review credits are more evenly spread out, though still concentrated on subsystems that require reviews before merging. 4,824 Patches in 5.3 (33% of the total) carried Reviewed-by tags; that is higher than the long-term average but slightly less than the number seen in 5.2.

The Reported-by tags, applied to give credit to the reporter of a problem, are worth a quick look as well. There were 687 patches with such tags merged for 5.3, with the top reporters being:

Reported-by credits in 5.3 Hulk Robot 89 10.7% kbuild test robot 62 7.5% Stephen Rothwell 37 4.4% Dan Carpenter 24 2.9% syzbot 18 2.2% Randy Dunlap 11 1.3% Geert Uytterhoeven 9 1.1% Guenter Roeck 9 1.1% kernel test robot 9 1.1% Arnd Bergmann 8 1.0%

Of the top five bug reporters, three are automated testing systems, one is the linux-next maintainer (linux-next being the first point of integration testing for many patches), and one is a developer who aggressively looks for (and fixes) bugs with a static-analysis tool. In other words, it is fair to say that the testing mechanisms that have slowly been built up around the kernel process are having an effect, catching bugs before they can affect users.

That said, it's worth noting that 2,026 changes in 5.3 — 14% of the total — carry Fixes: tags, implying that they are fixes for bugs that did make it into the mainline. Many fixes undoubtedly are merged without the addition of a Fixes: tag, so the actual percentage of bug fixes is certain to be significantly higher than that. Clearly, there is plenty of scope for improving our testing infrastructure and procedures still.

Finally, 233 companies (that we were able to identify) supported work on the 5.3 kernel. The most active of these companies were:

Most active 5.3 employers By changesets Intel 1545 10.7% AMD 966 6.7% (Unknown) 963 6.7% Red Hat 925 6.4% (None) 865 6.0% Google 638 4.4% Renesas Electronics 638 4.4% Linaro 548 3.8% IBM 460 3.2% Mellanox 440 3.0% (Consultant) 410 2.8% Huawei Technologies 372 2.6% SUSE 337 2.3% Samsung 311 2.2% NXP Semiconductors 309 2.1% Linux Foundation 291 2.0% ARM 280 1.9% Facebook 188 1.3% Oracle 170 1.2% BayLibre 170 1.2% By lines changed AMD 432537 37.0% Linaro 115926 9.9% Intel 76950 6.6% Mellanox 46732 4.0% Samsung 37869 3.2% Google 31666 2.7% (Unknown) 31310 2.7% Red Hat 31089 2.7% IBM 29449 2.5% (None) 27803 2.4% SUSE 18928 1.6% Cirrus Logic 16509 1.4% (Consultant) 14192 1.2% Facebook 13723 1.2% Linux Foundation 13405 1.1% ARM 12755 1.1% Pengutronix 12398 1.1% NXP Semiconductors 12202 1.0% Renesas Electronics 11345 1.0% Huawei Technologies 10165 0.9%

As usual, there are few surprises to be found in the above table. The list of the most active companies does not tend to vary much from one development cycle to the next.

Overall, the picture that emerges is of a development community that continues to integrate massive numbers of changes on a predictable schedule, and which continues to grow slowly. For all its faults, the kernel development community is clearly doing some things right.

