|
|
Subscribe / Log in / New account

Some 5.1 development statistics

By Jonathan Corbet
April 25, 2019
The release of the 5.1-rc6 kernel prepatch on April 21 indicates that the 5.1 development cycle is getting close to its conclusion. So naturally the time has come to put together some statistics describing where the changes merged for 5.1 came from. It is, for the most part, a fairly typical development cycle.

As of this writing, 12,749 non-merge changesets have been pulled into the mainline repository for the 5.1 release. That is slightly more than seen in 5.0, but still a bit lower than the other kernels released in the last few years. There were nearly 545,000 lines of code added by those changesets and 289,000 lines removed, for a net growth of 256,000 lines; this is not one of those rare development cycles where the kernel gets smaller. That work was contributed by 1,707 developers, 245 of whom made their first contribution in the 5.1 cycle.

The most active developers this time around were:

Most active 5.1 developers
By changesets
Gustavo A. R. Silva1921.5%
Yue Haibing1501.2%
Christoph Hellwig1471.2%
Chris Wilson1361.1%
Colin Ian King1040.8%
Arnd Bergmann1020.8%
Masahiro Yamada960.8%
Takashi Iwai940.7%
Heiner Kallweit940.7%
Axel Lin890.7%
Greg Kroah-Hartman880.7%
Sean Christopherson830.7%
Jakub Kicinski790.6%
Bartosz Golaszewski770.6%
Eric Biggers750.6%
Bart Van Assche740.6%
Christophe Leroy720.6%
Trond Myklebust710.6%
Arnaldo Carvalho de Melo700.5%
Hans Verkuil690.5%
By changed lines
Oded Gabbay487377.2%
Jakub Kicinski194662.9%
Eric Biggers174892.6%
Christoph Hellwig155562.3%
Greg Kroah-Hartman149972.2%
Chris Wilson122421.8%
Shunli Wang110461.6%
Hans Verkuil105091.6%
Kaike Wan97881.5%
Srinivas Kandagatla81601.2%
Alex Deucher78271.2%
James Smart74211.1%
Larry Finger71841.1%
David Francis71271.1%
Felix Fietkau68541.0%
Mark Rutland59580.9%
Jens Axboe53660.8%
Claudiu Manoil49740.7%
Johannes Berg46650.7%
Neil Brown45950.7%

The top contributor of changesets in 5.1 was Gustavo A. R. Silva, who continues to make general cleanups (such as marking switch fall-through cases) throughout the kernel tree. Yue Haibing was also a contributor of widespread cleanup work. Christoph Hellwig has been reworking the DMA-mapping code, improving the XFS filesystem, and more. Chris Wilson contributed a lot of work to the i915 graphics driver and Colin Ian King fixed a number of typos and coding-style issues.

Oded Gabbay reached the top of the "lines changed" column by adding the Habana AI processor driver. Jakub Kicinski reworked the BPF self tests, Eric Biggers added a lot of testing code to the crypto subsystem, and Greg Kroah-Hartman deleted the xgifb driver from the staging tree.

The kernel development community relies heavily on its testers and reviewers. The testing and review picture for 5.1 looks like this:

Test and review credits in 5.1
Tested-by
Arnaldo Carvalho de Melo497.6%
Andrew Bowers477.2%
Christian Zigotzky213.2%
Alexander Steffen172.6%
Stefan Berger162.5%
Gustavo Pimentel152.3%
Aaron Brown132.0%
Stan Johnson132.0%
Marek Szyprowski111.7%
Nathan Chancellor91.4%
Jarkko Sakkinen81.2%
Matthias Kaehlcke81.2%
Keerthy81.2%
Linus Walleij60.9%
Stefan Wahren60.9%
Sven Auhagen60.9%
Geert Uytterhoeven50.8%
Guenter Roeck50.8%
Jonathan Hunter50.8%
Randy Dunlap50.8%
Tyler Baicar50.8%
David Safford50.8%
Reviewed-by
Rob Herring2084.4%
Christoph Hellwig861.8%
Simon Horman761.6%
Tvrtko Ursulin761.6%
Andrew Lunn751.6%
Geert Uytterhoeven741.6%
Hannes Reinecke651.4%
Alex Deucher631.3%
Andrew Morton621.3%
David Sterba601.3%
Daniel Vetter591.3%
Chao Yu551.2%
Florian Fainelli491.0%
Jaroslav Kysela491.0%
Jakub Kicinski481.0%
Ville Syrjälä471.0%
Mika Kuoppala451.0%
Chris Wilson440.9%
Guenter Roeck410.9%
Laurent Pinchart410.9%
Darrick J. Wong400.9%
Mike Marciniszyn390.8%

There have been times when these statistics have shown some questionable behavior — large numbers of reviews from an author's coworkers that never saw a public list, for example. This time, about the only thing that jumps out is Rob Herring's activity: he reviewed a large number of device-tree bindings from many different developers, just as one might expect a device-tree maintainer to do. Overall, the community benefits hugely from the efforts of our many testers and reviewers.

Companies

A total of 230 companies (that could be identified) supported work on 5.1 — a typical number. The most active employers this time around were:

Most active 5.1 employers
By changesets
Intel150811.8%
(None)8977.0%
Red Hat8576.7%
(Unknown)8126.4%
Google6715.3%
Linaro5044.0%
Mellanox4933.9%
Huawei Technologies4873.8%
IBM4043.2%
SUSE3502.7%
AMD3402.7%
Linux Foundation2982.3%
Renesas Electronics2802.2%
(Consultant)2662.1%
NXP Semiconductors2301.8%
ARM2051.6%
Oracle2021.6%
Facebook1801.4%
Bootlin1761.4%
Code Aurora Forum1591.2%
By lines changed
Intel7684811.4%
Habana Labs524297.8%
(None)369305.5%
Google369165.5%
(Unknown)322494.8%
Red Hat315984.7%
Linaro291754.3%
AMD267054.0%
Mellanox242223.6%
(Consultant)240893.6%
Netronome Systems236913.5%
Facebook186392.8%
IBM185292.7%
NXP Semiconductors179572.7%
Linux Foundation162832.4%
ARM153692.3%
MediaTek145082.1%
SUSE138712.1%
Broadcom115641.7%
Renesas Electronics87181.3%

One obvious newcomer here is Habana Labs, which contributed a driver for its AI coprocessor to the kernel; otherwise there are not a lot of surprises in this table.

Paths

One of the interesting things that can be determined, with some effort, from the kernel's Git repository is the path each commit took into the mainline — which other Git trees did it go through first? The information is not perfect; in particular, fast-forward merges will cause the provenance of a commit to be lost. But such merges are relatively rare in the kernel community (which lacks the fear of merges seen in many other projects), so an interesting picture can be created.

The entire picture is rather large to embed in an article; it can be seen on this page. The portion corresponding to the networking tree (the biggest single source of commits flowing into the mainline) is shown below:

[Treeplot output]

If a link between two git trees uses signed tags, it is shown in black; otherwise it appears in red. As can be seen, a number of significant trees are still not using signed tags in pull requests to the mainline; these include networking and, ironically, the security and crypto trees. The rule applied by Linus Torvalds is to require signed tags on any pull request that is not hosted on kernel.org; the diagram shows that he is adhering to that. Many of the other maintainers feeding into the mainline, though, do not enforce the same rule, so commits that originate on sites like GitHub are still being pulled in without signatures.

The overall picture shows that, while there are more subsystems using multiple levels of maintainers, an awful lot of code still goes directly to Torvalds. The system appears to work, though; Torvalds has shown few signs of stress in recent years. The same could be said of the development community in general. While some maintainers are clearly stressed, the system as a whole continues to function smoothly, producing kernels with thousands of changes on a predictable nine or ten-week schedule.

Index entries for this article
KernelReleases/5.1


to post comments

Some 5.1 development statistics

Posted Apr 26, 2019 7:46 UTC (Fri) by blackwood (guest, #44174) [Link] (2 responses)

Somehow soc/soc in the commit flow graph doesn't have the number of commits flowing through that tree. Seems to be the only one.

Some 5.1 development statistics

Posted Apr 26, 2019 7:50 UTC (Fri) by blackwood (guest, #44174) [Link]

I'm also wondering why drm-intel is talking to itself. I guess it's due to topic branches shared with other trees (we've had a pile in 5.1 of those), or maybe backmerges. But other trees do that too, but none look this self-absorbed in the graph.

Some 5.1 development statistics

Posted Apr 26, 2019 15:41 UTC (Fri) by samlh (subscriber, #56788) [Link]

The commit flow for soc/soc is there, it's just mostly covered by the arrowheads.

Some 5.1 development statistics

Posted Apr 26, 2019 16:47 UTC (Fri) by moorray (guest, #54145) [Link] (1 responses)

I used to understand why patches coming to the ML with reviews already on was bad, but now, having gained more experience, I'm no longer so sure..
A major reason to review the patches internally first, is that the quality is not always great. We probably don't need 10 upstream maintainers/reviewers pointing out to their team members that they forgot a kfree() in a public forum, just because of the email volume.
As far as the reviews go - I certainly want the employees who spend their time reviewing code see their contribution acknowledged. The maintainer above me knows the people and the value of their tags, regardless of the employer.

Some 5.1 development statistics

Posted May 9, 2019 20:35 UTC (Thu) by scientes (guest, #83068) [Link]

> We probably don't need 10 upstream maintainers/reviewers pointing out to their team members that they forgot a kfree() in a public forum, just because of the email volume.

But getting it published quickly so others can see it is often important.


Copyright © 2019, 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