|
|
Subscribe / Log in / New account

Some numbers from the 3.11 development cycle

Did you know...?

LWN.net is a subscriber-supported publication; we rely on subscribers to keep the entire operation going. Please help out by buying a subscription and keeping LWN on the net.

By Jonathan Corbet
August 21, 2013
As of this writing, the 3.11-rc6 prepatch is out and the 3.11 development cycle appears to be slowly drawing toward a close. That can only mean one thing: it must be about time to look at some statistics from this cycle and see where the contributions came from. 3.11 looks like a fairly typical 3.x cycle, but, as always, there's a small surprise or two for those who look.

Developers and companies

Just over 10,700 non-merge changesets have been pulled into the repository (so far) for 3.11; they added over 775,000 lines of code and removed over 328,000 lines for a net growth of 447,000 lines. So this remains a rather slower cycle than 3.10, which was well past 13,000 changesets by the -rc6 release. As might be expected, the number of developers contributing to this release has dropped along with the changeset count, but this kernel still reflects contributions from 1,239 developers. The most active of those developers were:

Most active 3.11 developers
By changesets
H Hartley Sweeten3333.1%
Sachin Kamat3022.8%
Alex Deucher2542.4%
Jingoo Han1901.8%
Laurent Pinchart1471.4%
Daniel Vetter1371.3%
Al Viro1311.2%
Hans Verkuil1231.1%
Lee Jones1121.0%
Xenia Ragiadakou1000.9%
Wei Yongjun990.9%
Jiang Liu980.9%
Lars-Peter Clausen910.8%
Linus Walleij900.8%
Johannes Berg860.8%
Tejun Heo850.8%
Oleg Nesterov710.7%
Fabio Estevam700.7%
Tomi Valkeinen690.6%
Dan Carpenter660.6%
By changed lines
Peng Tao26043926.9%
Greg Kroah-Hartman919739.5%
Alex Deucher559045.8%
Kalle Valo221032.3%
Ben Skeggs202822.1%
Eli Cohen158861.6%
Solomon Peachy155101.6%
Aaro Koskinen134431.4%
H Hartley Sweeten110431.1%
Laurent Pinchart89230.9%
Benoit Cousson87340.9%
Tomi Valkeinen82460.9%
Yuan-Hsin Chen82220.9%
Tomasz Figa76680.8%
Xenia Ragiadakou51360.5%
Johannes Berg50290.5%
Maarten Lankhorst49240.5%
Marc Zyngier48170.5%
Hans Verkuil47070.5%
Linus Walleij43790.5%

Someday, somehow, somebody will manage to displace H. Hartley Sweeten from the top of the by-changesets list, but that was not fated to be in the 3.11 cycle. As always, he is working on cleaning up the Comedi drivers in the staging tree — a task that has led to the merging of almost 4,000 changesets into the kernel so far. Sachin Kamat contributed a large set of cleanups throughout the driver tree, Alex Deucher is the primary developer for the Radeon graphics driver, Jingoo Han, like Sachin, did a bunch of driver cleanup work, and Laurent Pinchart did a lot of Video4Linux and ARM architecture work.

On the "lines changed" side, Peng Tao added the Lustre filesystem to the staging tree, while Greg Kroah-Hartman removed the unloved csr driver from that tree. Alex's Radeon work has already been mentioned; Kalle Valo added the ath10k wireless network driver, while Ben Skeggs continued to improve the Nouveau graphics driver.

Almost exactly 200 employers supported work on the 3.11 kernel; the most active of those were:

Most active 3.11 employers
By changesets
(None)9769.1%
Intel9709.1%
Red Hat9118.5%
Linaro8908.3%
Samsung4854.5%
(Unknown)4834.5%
IBM4183.9%
Vision Engraving Systems3333.1%
Texas Instruments3193.0%
SUSE3102.9%
AMD2812.6%
Renesas Electronics2652.5%
Outreach Program for Women2302.1%
Google2242.1%
Freescale1511.4%
Oracle1371.3%
ARM1351.3%
Cisco1321.2%
By lines changed
(None)30799631.9%
Linux Foundation939299.7%
AMD577456.0%
Red Hat526795.5%
Intel408684.2%
Texas Instruments288193.0%
Qualcomm262152.7%
Renesas Electronics240842.5%
Samsung234132.4%
Linaro206492.1%
(Unknown)173621.8%
IBM173371.8%
AbsoluteValue Systems168721.7%
Nokia168471.7%
Mellanox168411.7%
Vision Engraving Systems122681.3%
Outreach Program for Women114991.2%
SUSE102791.1%

Once again, the percentage of changes coming from volunteers (listed as "(None)" above) appears to be slowly falling; it is down from over 11% in 3.10. Red Hat has, for the second time, ceded the top non-volunteer position to Intel, but the fact that Linaro is closing on Red Hat from below is arguably far more interesting. The numbers also reflect the large set of contributions that came in from applicants to the Outreach Program for Women, which has clearly succeeded in motivating contributions to the kernel.

Signoffs

Occasionally it is interesting to look at the Signed-off-by tags in patches in the kernel repository. In particular, if one looks at signoffs by developers other than the author of the patch, one gets a sense for who the subsystem maintainers responsible for getting patches into the mainline are. In the 3.11 cycle, the top gatekeepers were:

Most non-author signoffs in 3.11
By developer
Greg Kroah-Hartman121212.3%
David S. Miller8018.1%
Andrew Morton6116.2%
Mauro Carvalho Chehab3713.8%
John W. Linville2852.9%
Mark Brown2762.8%
Daniel Vetter2642.7%
Simon Horman2522.6%
Linus Walleij2362.4%
Benjamin Herrenschmidt1721.7%
Kyungmin Park1571.6%
James Bottomley1431.4%
Ingo Molnar1321.3%
Rafael J. Wysocki1311.3%
Kukjin Kim1211.2%
Dave Airlie1211.2%
Shawn Guo1211.2%
Felipe Balbi1191.2%
Johannes Berg1171.2%
Ralf Baechle1101.1%
By employer
Red Hat215621.9%
Linux Foundation124912.7%
Intel9049.2%
Google7888.0%
Linaro7597.7%
Samsung4294.4%
(None)4084.1%
IBM3323.4%
Renesas Electronics2592.6%
SUSE2492.5%
Texas Instruments2372.4%
Parallels1431.5%
Wind River1261.3%
(Unknown)1241.3%
Wolfson Microelectronics1141.2%
Broadcom971.0%
Fusion-IO890.9%
OLPC870.9%
(Consultant)860.9%
Cisco800.8%

We first looked at signoffs for 2.6.22 in 2007. Looking now, there are many of the same names on the list — but also quite a few changes. As is the case with other aspects of kernel development, the changes in signoffs reflect the growing importance of the mobile and embedded sector. The good news, as reflected in these numbers, is that mobile and embedded developers are finding roles as subsystem maintainers, giving them a stronger say in the direction of kernel development going forward.

Persistence of code

Finally, it has been some time since we looked at persistence of code over time; in particular, we examined how much code from each development cycle remained in the 2.6.33 kernel. This information is obtained through the laborious process of running "git blame" on each file, looking at the commit associated with each line, and mapping that to the release in which that commit was merged. Doing the same thing now yields a plot that looks like this:

[bar
chart]

From this we see that the code added for 3.11 makes up a little over 4% of the kernel as a whole; as might be expected, the percentage drops as one looks at older releases. Still, quite a bit of code from the early 2.6.30's remains untouched to this day. Incidentally, about 19% of the code in the kernel has not been changed since the beginning of the git era; there are still 545 files that have not been changed at all since the 2.6.12 development cycle.

Another way to look at things would be to see how many lines from each cycle were in the kernel in 2.6.33 (the last time this exercise was done) compared to what's there now. That yields:

[another bar chart]

Thus, for example, the 2.6.33 kernel had about 400,000 lines from 2.6.26; of those, about 290,000 remain in 3.11. One other thing that stands out is that the early 2.6.30 development cycles saw fewer changesets merged into the mainline than, say, 3.10 did, but they added more code. Much of that code has since been changed or removed, though. Given that much of that code went into the staging tree, this result is not entirely surprising; the whole point of putting code into staging is to set it up for rapid change.

Actually, "rapid change" describes just about all of the data presented here. The kernel process continues to absorb changes at a surprising and, seemingly, increasing rate without showing any serious signs of strain. There is almost certainly a limit to the scalability of the current process, but we do not appear to have found it yet.

Index entries for this article
KernelReleases/3.11


(Log in to post comments)

Some numbers from the 3.11 development cycle

Posted Aug 22, 2013 10:42 UTC (Thu) by intgr (subscriber, #39733) [Link]

Really exciting to see AMD in the top-20 employers list again, and even ahead of Intel in terms of changed lines. They have been mostly off the charts since Linux 3.0 was released 2 years ago! (barring 2 smaller exceptions).

Last time I bought an AMD graphics card I was seriously disappointed in how crappy the open source drivers were; and even more disappointed that they didn't significantly improve in the 2 years I had that card. If they can keep it up, maybe it's time to try again soon -- with luck it will be faster than Intel's integrated graphics this time around.

Some numbers from the 3.11 development cycle

Posted Aug 22, 2013 12:19 UTC (Thu) by mcfrisk (guest, #40131) [Link]

Nokia is suspiciously high on the company list. Is the developer to company mapping perhaps not uptodate?

Nokia

Posted Aug 22, 2013 12:45 UTC (Thu) by corbet (editor, #1) [Link]

Sigh, that should have jumped out at me. Yes, there was a mapping for one developer that needs to be updated. The developer in question has moved to NSN, but it's not clear whether the bulk of their contributions should really be considered volunteer work. I will figure this out and eventually update the table; sorry for the confusion.

Nokia

Posted Aug 22, 2013 13:08 UTC (Thu) by mcfrisk (guest, #40131) [Link]

From what I can see form git log v3.10..v3.11-rc6:
* no commits from nokia.com
* few commits form nsn.com
* some people also do private development work with other email addresses, Finns often from @iki.fi

And to spice things up, NSN is 100% Nokia these days :)

Nokia

Posted Aug 22, 2013 14:21 UTC (Thu) by Andiii (subscriber, #81673) [Link]

Well I think there is a difference between patches that belong to private work and patches that belong to the employer. After Meltemi Nokia stopped sending patches and all the .iki patches belong to private developers rather than Nokia.

Nokia

Posted Aug 27, 2013 11:32 UTC (Tue) by nhippi (guest, #34640) [Link]

To spice up things even more, NSN was "Nokia Siemens Networks", now it is "Nokia Solutions and Networks". They still do quite some Linux work, so some commits are possibly work-time. You will just have to ask the developers them self.

"In the git era..."

Posted Aug 22, 2013 17:59 UTC (Thu) by Baylink (guest, #755) [Link]

Are you trying out for Casey Kasem's old job, Jon?

"What was the act who had the most top 10 hits in the rock era? We'll tell you... right after this."

Outreach Program for Women (OPW) contributions

Posted Aug 27, 2013 18:03 UTC (Tue) by sarah (guest, #49619) [Link]

Congratulations to all the OPW kernel interns! I'm really proud of all our interns, especially Xenia, who made the #10 contributor spot for changesets. She's been doing great work in staging and on the xHCI driver.

Some numbers from the 3.11 development cycle

Posted Aug 28, 2013 15:35 UTC (Wed) by deater (subscriber, #11746) [Link]

While this list is interesting, I do somehow feel like it does emphasize quantity over quality.

For example, say someone spends a lot of time writing a syscall fuzzer. Finds bugs in the kernel. Reports them. Finds out one is a local root exploit. Reports this through the proper channels (which is a pain in and of itself). Spends lots of time bisecting to find the source of the error. Verify which kernel introduced the problem. Make lots of kernel compiles/tests on a slow ARM board to verify fixes. Stays on the case for the 2 weeks it takes for the fix to get merged. Make sure the fix gets into the stable kernel.

And after all of that, the only mention is a "Reported-by" tag in a single kernel commit.

Yet someone who submits a lot of whitespace fixes to a staging driver might make the "top 10 developer" list.

I'm not sure how you'd account properly for the amount of work done in situations like this though.

Some numbers from the 3.11 development cycle

Posted Aug 29, 2013 15:14 UTC (Thu) by bosyber (guest, #84963) [Link]

When talking of doing that sort of work those many small changesets by Viro and Hartley-Sweeten are the result, at least from some regular contributors, aren't they?

I figure the most notable bits of work get mentioned by way of separate lwn articles anyway!

Bosyber

Some numbers from the 3.11 development cycle

Posted Aug 29, 2013 13:25 UTC (Thu) by endecotp (guest, #36428) [Link]

Wouldn't cumulative graphs be more appropriate?

Some numbers from the 3.11 development cycle

Posted Sep 16, 2013 21:53 UTC (Mon) by Tov (subscriber, #61080) [Link]

Hi Jon. Thank you for the nice statistics.

Regarding the code persistence graphs you link to an older article http://lwn.net/Articles/374574/
I remember one of the commenters (aegl) to that article made some really pretty graphs showing the code decay of all kernel versions in a "strata" graph. Unfortunately the links in the article are dead now, but by a quick search I found the graph here: http://mirror.linux.org.au/linux/kernel/people/aegl/codes...

If you made an updated graph like that it would be really awesome! (and I would basically have no excuses for not renewing my subscription ;-)


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