|
|
Subscribe / Log in / New account

Statistics from the 3.19 development cycle

By Jonathan Corbet
February 4, 2015
As of this writing, the 3.19-rc7 prepatch is out and things look on track for the final 3.19 release in the near future. So it seems about time for a look at the changes that went into this release and where they came from. Once again, it has been a busy development cycle with few real surprises.

There have been 12,461 changesets merged into the mainline for the 3.19 release. That is up a bit from 3.18 and fits well with the general trend toward larger changeset counts in each release, as can be seen in this simple plot:

[Changesets merged per release]

If the final 3.19 release does happen on February 8, as seems likely, the development cycle will have been 63 days long — the third cycle in a row of that length. Development cycle length has been decreasing for some time, but, at this point, we may be close to the minimum time it takes to produce a production-quality kernel release.

The changes in the 3.19 release were contributed by 1,422 developers — almost the same as the number of contributors to 3.18. The most active of these developers are:

Most active 3.19 developers
By changesets
H Hartley Sweeten4633.7%
Wolfram Sang3332.7%
Alexander Aring1931.5%
Benjamin Romer1761.4%
Lars-Peter Clausen1541.2%
Malcolm Priestley1261.0%
Al Viro1231.0%
Thierry Reding1211.0%
Takashi Iwai1180.9%
Daniel Vetter1030.8%
Geert Uytterhoeven1030.8%
SF Markus Elfring990.8%
Johan Hedberg980.8%
Michael S. Tsirkin950.8%
Hans Verkuil840.7%
Peter Hurley820.7%
Ville Syrjälä790.6%
Damien Lespiau760.6%
Fabian Frederick730.6%
Steven Rostedt710.6%
By changed lines
Malcolm Priestley311154.5%
Jeff Kirsher260253.7%
Hans Verkuil226023.3%
Nicolas Ferre225803.2%
Paolo Bonzini147062.1%
Hante Meuleman136942.0%
H Hartley Sweeten124451.8%
Ley Foon Tan102221.5%
Takashi Sakamoto87041.3%
Thierry Reding82601.2%
Philipp Zabel74771.1%
Joe Perches72681.0%
Daniel Vetter65840.9%
Pratik Patel65730.9%
Alexander Aring63820.9%
Vinod Koul60850.9%
Finn Thain56630.8%
Daeseok Youn55540.8%
Hannes Reinecke49510.7%
Christoph Hellwig48180.7%

There may indeed come a day, in some distant, unimaginable future, when the Comedi drivers are done and Hartley Sweeten does not contribute the most changesets to a kernel release. But that day won't happen during the 3.19 cycle. Wolfram Sang eliminated unnecessary assignments to the owner field of struct platform_driver, Alexander Aring did a lot of work on the kernel's 802.15.4 implementation, Benjamin Romer cleaned up the unisys driver in the staging tree, and Lars-Peter Clausen did a bunch of sound-driver work.

In the "lines changed" column, Malcolm Priestley topped the list with a lot of work (including the removal of a lot of code) on the vt6655 driver in the staging tree. Jeff Kirsher contributed three patches, one of which removed the old and unloved bcm driver, while Hans Verkuil, as usual, did a lot of work within the Video4Linux tree. Nicolas Ferre removed a bunch of old ARM code, and Paolo Bonzini rearranged the KVM x86 code.

The developers working on 3.19 were supported by just over 200 companies, a typical number for recent development cycles. The list of the most active companies holds few surprises:

Most active 3.19 employers
By changesets
Intel149012.0%
(None)136310.9%
Red Hat10298.3%
(Unknown)9357.5%
(Consultant)6175.0%
Vision Engraving Systems4633.7%
SUSE4373.5%
Samsung4203.4%
Linaro3622.9%
Texas Instruments2842.3%
Google2702.2%
IBM2672.1%
Renesas Electronics2612.1%
Unisys2081.7%
AMD2051.6%
Free Electrons2051.6%
Freescale2021.6%
NVidia1531.2%
ARM1531.2%
Broadcom1451.2%
By lines changed
Intel9528313.7%
(None)7863511.3%
Red Hat573788.3%
(Unknown)438196.3%
Cisco257573.7%
(Consultant)255113.7%
Atmel252393.6%
Broadcom181892.6%
Linaro180712.6%
SUSE178982.6%
Samsung162952.3%
AMD161862.3%
Google151522.2%
Vision Engraving Systems133071.9%
Free Electrons115591.7%
Altera113691.6%
IBM113241.6%
Code Aurora Forum106321.5%
Texas Instruments103771.5%
NVidia96391.4%

The percentage of developers working on their own time is holding steady at around 11%, suggesting that the long-term decline in volunteer developers may have come to an end.

To finish things out, it has been a while since we have taken a look at the longevity of code going into the kernel — in other words, how much of the current kernel came from each development cycle? The current picture looks like this:

Surviving lines of code from each development cycle
[Bar chart]

This chart was generated by running "git blame" on each file in the kernel tree and identifying the commit that created each line within the file. It starts at 2.6.13, omitting the beginning of the git era at 2.6.12 for clarity; that bar, representing the 3 million lines that have not been modified since 2.6.12, would dwarf all the others.

The story that emerges from that chart is that recent development cycles do not dramatically overshadow earlier cycles. That suggests that, once a line of code is put in place, it tends not to change much in the following cycles. Sometimes it seems that there is a lot of churn, frequently rewriting the same code, but the truth is that most of the code in the kernel has not been changed in years.

In other words, most kernel developers are busy adding new code, which is not a particularly surprising result. It takes a lot of new code to keep up with the demands for new features and support for new hardware. The evidence suggests that the kernel community is continuing to grow in response to those demands and the process is working reasonably well.

Index entries for this article
KernelReleases/3.19


to post comments

Statistics from the 3.19 development cycle

Posted Feb 5, 2015 5:54 UTC (Thu) by marcH (subscriber, #57642) [Link] (1 responses)

> It takes a lot of new code to keep up with the demands for new features *and* support for new hardware.

How hard would it be to isolate the stats of each? "Simply" exclude the drivers/ directory?

Statistics from the 3.19 development cycle

Posted Feb 5, 2015 6:15 UTC (Thu) by dlang (guest, #313) [Link]

That's probably a fair first approximation, but sometimes the features include modifications to drivers to support new things.

Statistics from the 3.19 development cycle

Posted Feb 5, 2015 10:33 UTC (Thu) by cry_regarder (subscriber, #50545) [Link]

It would be helpful if the "Surviving Lines" plot was normalized by the number of lines introduced in each kernel.


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