|
|
Subscribe / Log in / New account

Some 3.8 development statistics

By Jonathan Corbet
February 13, 2013
The release of 3.8-rc7 suggests that the 3.8 development cycle is nearing its close. This has been a busy cycle indeed, with, as of this writing, just over 12,300 non-merge changesets finding their way into the mainline. That makes 3.8 the most active development cycle ever, edging out 2.6.25 and its mere 12,243 changesets. Like it or not, the time for the traditional statistics article has come around; this time, though, your editor has tried looking at things in a different way.

But, before getting to that, here's the usual numbers. As of this writing, some 1,253 developers have contributed code to the 3.8 kernel. The most active of those were:

Most active 3.8 developers
By changesets
H Hartley Sweeten4263.5%
Bill Pemberton3813.1%
Philipp Reisner2381.9%
Andreas Gruenbacher2101.7%
Lars Ellenberg1461.2%
Mark Brown1431.2%
Sachin Kamat1351.1%
Al Viro1271.0%
Tomi Valkeinen1150.9%
Wei Yongjun1140.9%
Axel Lin1120.9%
Johannes Berg1040.8%
Kevin McKinney1030.8%
YAMANE Toshiaki1010.8%
Ben Skeggs1000.8%
Paulo Zanoni1000.8%
Ian Abbott980.8%
Mauro Carvalho Chehab910.7%
Andrei Emeltchenko840.7%
Daniel Vetter820.7%
By changed lines
Greg Kroah-Hartman424485.8%
Sreekanth Reddy304154.2%
H Hartley Sweeten225813.1%
Naresh Kumar Inna193782.7%
Larry Finger167982.3%
Paul Walmsley167202.3%
Jaegeuk Kim134701.9%
Rajendra Nayak103981.4%
David Howells99461.4%
Wei WANG97751.3%
Ben Skeggs93951.3%
Jussi Kivilinna87841.2%
Philipp Reisner85961.2%
Eunchul Kim85331.2%
Bill Pemberton82931.1%
Nobuhiro Iwamatsu77951.1%
Peter Hurley76711.1%
Laxman Dewangan68980.9%
Lars-Peter Clausen65370.9%
Lars Ellenberg63200.9%

H. Hartley Sweeten's position at the top of the changeset list should be unsurprising by now; he continues the seemingly endless task of cleaning up the Comedi data acquisition drivers. Bill Pemberton has been working to rid the kernel of the __devinit markings (and variants), reflecting the fact that we all live in a hotplug world now. Philipp Reisner, Andreas Gruenbacher, and Lars Ellenberg all contributed long lists of changes to the DRBD distributed block driver; the resulting code dump caused block maintainer Jens Axboe to promise Linus that "Following that, it was both made perfectly clear that there is going to be no more over-the-wall pulls and how the situation on individual pulls can be improved."

On the lines-changed side, Greg Kroah-Hartman worked on the __devinit removal, but also removed over 37,000 lines of code from the staging tree. Sreekanth Reddy made a number of additions to the mpt3sas SCSI driver, Naresh Kumar Inna contributed the Chelsio FCoE offload driver, and Larry Finger added the rtl8723ae wireless driver.

Some 205 employers (that we know about) supported development on the 3.8 kernel. The most active of these were:

Most active 3.8 employers
By changesets
(None)158012.8%
Red Hat11129.0%
Intel10768.7%
(Unknown)9177.4%
LINBIT5954.8%
Linaro5724.6%
Texas Instruments4924.0%
Vision Engraving Systems4263.5%
Samsung4103.3%
SUSE3102.5%
IBM2872.3%
Google2542.1%
Broadcom1901.5%
(Consultant)1711.4%
Wolfson Microelectronics1611.3%
Freescale1291.0%
Free Electrons1281.0%
Parallels1231.0%
NVidia1211.0%
NetApp1211.0%
By lines changed
(None)7995411.0%
Red Hat605158.3%
Intel463266.4%
Linux Foundation431905.9%
(Unknown)410975.7%
Samsung365965.0%
(Consultant)331754.6%
LSI Logic304154.2%
Linaro290304.0%
Vision Engraving Systems260743.6%
LINBIT224873.1%
Chelsio215343.0%
Texas Instruments212762.9%
IBM142332.0%
Broadcom122361.7%
Renesas Electronics115701.6%
NVidia103691.4%
Realsil Microelectronics97971.3%
Qualcomm93451.3%
SUSE91391.3%

Red Hat remains in its traditional position at the top of the list — but not by much. Perhaps more significant is that some companies that have long shown up in the top 20 have fallen off the list this time; those companies include AMD and Oracle. Meanwhile, we continue to see an increasingly strong showing from companies in the mobile and embedded area.

What are they working on?

Many of the companies in the above list have obvious objectives for their work in the kernel; LINBIT, for example, is a business built around DRBD, and Wolfson Microelectronics is in the business of selling a lot of audio hardware. But if companies just focused on driver work, there would be nobody left to do the core kernel work; thus, a look at what parts of the kernel any specific company is working on will say something about how broad its objectives are. To that end, your editor set out to hack on the gitdm tool to focus on one company at a time. So, for example, from the 3.3 kernel onward (essentially, from the beginning of 2012 to the present), Red Hat's changes clustered in these areas:

Red Hat
%SubsystemNotes
34%drivers/ 9% gpu, 6% media, 6% net, 3% md
20%fs/ 3% xfs, 3% nfsd, 2% cifs, 2% gfs2, 1% btrfs, 1% ext4
14%include/
8%net/
8%tools/
7%arch/x86/
7%kernel/
2%mm/

(Patches touching more than one subsystem are counted in each, so the percentages can add up to over 100%.)

Red Hat puts a lot of effort into making drivers work, but also has a strong interest in the filesystem subtree. The large proportion of patches going into tools/ reflects Red Hat's continued development of the perf tool.

Intel's focus during the same time period is somewhat different:

Intel
%SubsystemNotes
66%drivers/ 22% net, 17% gpu, 4% scsi, 3% acpi, 3% usb
17%net/ 7% bluetooth, 5% mac80211, 3% nfc
13%include/
7%arch/x86
3%fs/

Intel is a hardware company, so the bulk of its effort is focused on making its products work well in the Linux kernel. Improving memory management or general-purpose filesystems is mostly left for others.

Google's presence in the kernel development community has grown considerably in the last few years. In this case, the pattern of development is different yet again:

Google
%SubsystemNotes
27%drivers/ 4% net, 4% pci, 3% staging, 3% input, 3% gpu
22%net/ 11% ipv4, 5% core, 5% ipv6
21%include/
11%mm/
10%fs/ 6% ext4, 1% proc
8%kernel/
6%arch/arm
5%arch/x86
4%Documentation/

Google has an obvious interest in making the Internet work better, and much of its work in the kernel is aimed toward that goal. But the company also wants Android to work better (thus more driver work, ARM architecture work) and better scalability in general, leading to a lot of core kernel work. Much of Google's work is visible to the outside world in one way or another, so it is nice to see that the company has been reasonably diligent about keeping the relevant documentation current.

While we are on the subject of ARM, what about Linaro? This consortium is very much about hardware enablement, so it would not be surprising to see a focus on the ARM architecture subsystem. And, indeed, that's how it looks:

Linaro
%SubsystemNotes
47%drivers/ 5% pinctrl, 4% clk, 4% mmc, 4% mfd, 3% gpu, 3% media
36%arch/arm
12%include/
9%kernel/
6%sound/
5%Documentation/
2%fs/ 1.5% pstore

Almost everything Linaro does is focused on making the hardware work better; even much of the work on the core kernel is dedicated to timekeeping. And while lots of work in Documentation/ is always welcome, in this case, it mostly consists of device tree snippets.

Finally, what about the largest group of all — developers who are working on their own time? Here is where those developers put their energies:

Unaffiliated developers
%SubsystemNotes
68%drivers/ 13% staging, 12% net, 10% gpu, 8% media, 6% usb, 2% hid
14%arch/ 5% arm, 2% mips, 2% x86, 2% sparc
8%include/
6%net/ 2% batman-adv
3%fs/
2%Documentation/
2%sound/
1%kernel/

Volunteer developers, it seems, share a strong interest in making their own hardware work; they are also the source of many of the patches going into the staging tree. That suggests that, in a time when much of the kernel is becoming more complex and less approachable, the staging tree is providing a way for new developers to get into the kernel and learn the ropes in a relatively low-pressure setting. The continued health of the community depends on a steady flow of new developers, so providing an easy path for developers to get into kernel development can only be a good thing.

And, certainly, from the information found here, one should be able to conclude that the development community remains in good health overall. We are about to complete our busiest development cycle ever with no real signs of strain. For the time being, things seem to be functioning quite well.

Index entries for this article
KernelReleases/3.8


to post comments

Some 3.8 development statistics

Posted Feb 14, 2013 4:54 UTC (Thu) by nevets (subscriber, #11875) [Link]

Jon,

Thanks for the break up of what companies are focusing on. That tells a heck of a lot more than just the bragging rights of who has the most commits.

Some 3.8 development statistics

Posted Feb 14, 2013 6:41 UTC (Thu) by pabs (subscriber, #43278) [Link]

Unaffiliated developers
%	Subsystem	Notes
68%	drivers/	13% staging, 12% net, 10% gpu, 8% media, 6% usb, 2% hid
14%	arch/	5% arm

This is the interesting bit to me. My interpretation is that volunteers are beginning to pick up the slack of merging drivers and other parts of old Android vendor kernels into mainline. No-one else has motivation to do that, vendors have already shipped the devices, Google is focused on their own devices and the next version of Android. It would be great if this volunteer based merging activity could be accelerated. I guess that guides to forward porting drivers and for converting board files to device-tree would be useful.

It would be interesting to see which communities these unaffiliated developers are actually affiliated with. For example are there any CyanogenMod, XDA, Replicant, Maemo, Mer, Tizen, IVI or OpenMoko/OpenPhoenux related devs contributing?

Some 3.8 development statistics

Posted Feb 14, 2013 7:49 UTC (Thu) by Gollum (guest, #25237) [Link]

It might be useful/interesting to present the per-affiliation results as something similar to a "du" tree, perhaps with a depth limit of 1 or 2, and flags to prune entries that fall below a certain threshold. Alternatively a flag to show only subdirectories that add up to a certain threshold (e.g. 80%) of the total effort in that dir

e.g.

treestats --user xxx@yyy --depth 2 --min 1%

or

treestats --affiliation RedHat --depth 2 --min 1%

That would reduce the amount of manual notes required to explain an entry.

Some 3.8 development statistics

Posted Feb 14, 2013 16:08 UTC (Thu) by nim-nim (subscriber, #34454) [Link] (3 responses)

What's more amazing is that apart from Suse (which has already slipped in last position in the by-line report) no entity in the Linux distribution business shows up anymore except for Red Hat.

Makes you wonder how well would other Linux distros fare should anything change Red Hat-side. I doubt the Googles and IBMs would fight hard to sustain end-user-facing distributions.

Some 3.8 development statistics

Posted Feb 14, 2013 22:20 UTC (Thu) by khim (subscriber, #9252) [Link] (1 responses)

I doubt the Googles and IBMs would fight hard to sustain end-user-facing distributions.

Not sure about IBM, but Google most definitely will fight hard to sustain couple of "end-user-facing distributions". Of course these are called Android and ChromeOS and thus may not be what you had in mind, but they are Linux distributions (albeit at this point not a self-hosting ones).

Some 3.8 development statistics

Posted Feb 19, 2013 8:18 UTC (Tue) by fdrs (subscriber, #85858) [Link]

And their use of Ubuntu as workstation (I don't see developers using ChromeOS for real work)

Some 3.8 development statistics

Posted Feb 22, 2013 10:56 UTC (Fri) by njwhite (guest, #51848) [Link]

I'd guess people affiliated with Debian are responsible for quite a few of the unknown / consultant / none commits.

Some 3.8 development statistics

Posted Feb 15, 2013 4:11 UTC (Fri) by jengelh (guest, #33263) [Link]

It would seem mpt2sas and mpt3sas are quite similar and {c,sh}ould be merged?

Some 3.8 development statistics

Posted Feb 15, 2013 19:26 UTC (Fri) by brother_rat (subscriber, #1895) [Link]

It might make sense to reverse this: in each directory, what percentage of changes were done by each company?

The way it's done now I think there's a bias towards driver code simply because there's much more of it to start with, and changes to drivers can (perhaps) be easily split into multiple independent changesets.


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