The Linux kernel project's "git" revision control tool offers up some numbers on which developers, and which companies, contributed the most code to Linux, and who's reviewing other people's code.
endif; ?>The Linux kernel project’s “git” revision control tool offers up some numbers on which developers, and which companies, contributed the most code to Linux, and who’s reviewing other people’s code.
While the kernel 2.6.23 development cycle has not yet run its course, things are getting close enough to the end that it makes sense to start looking at the overall statistics for this release. As of this writing (shortly after 2.6.23-rc6 came out), just over 6,200 non-merge changesets had been added to the mainline kernel repository. These changesets came from 854 developers – a slightly smaller number than we saw for 2.6.22. Just over 350 of those developers contributed one single changeset.
All told, the patches added almost 430,000 lines, but also removed 406,000 lines, meaning that the kernel grew by just under 23,000 lines – a relatively small number. That is partially a result of kernel hatcheteer Adrian Bunk’s work: he removed the old SpeedStep code, a number of Open Sound System drivers, Rise CPU support, and more – a total of almost 73,000 lines removed. Jeff Garzik hacked out over 41,000 lines of network driver code, and Jens Axboe got rid of over 25,000 lines of code, mostly in the form of ancient CDROM drivers.
Here is the list of the top contributors to 2.6.23, as counted by changesets merged and by lines of code changed:
Most active 2.6.23 developers
| By changesets | ||
|---|---|---|
| Ingo Molnar | 152 | 2.5% |
| Ralf Baechle | 119 | 1.9% |
| Trond Myklebust | 116 | 1.9% |
| Paul Mundt | 111 | 1.8% |
| David S. Miller | 107 | 1.7% |
| Tejun Heo | 103 | 1.7% |
| Al Viro | 95 | 1.5% |
| Patrick McHardy | 93 | 1.5% |
| Adrian Bunk | 92 | 1.5% |
| FUJITA Tomonori | 91 | 1.5% |
| Avi Kivity | 72 | 1.2% |
| Andrew Morton | 71 | 1.1% |
| Greg Kroah-Hartman | 62 | 1.0% |
| Alan Cox | 58 | 0.9% |
| David Brownell | 56 | 0.9% |
| Jeff Garzik | 55 | 0.9% |
| Christoph Hellwig | 54 | 0.9% |
| Stephen Hemminger | 53 | 0.9% |
| H. Peter Anvin | 52 | 0.8% |
| Jesper Juhl | 52 | 0.8% |
| By changed lines | ||
|---|---|---|
| Adrian Bunk | 73254 | 11.0% |
| Jeff Garzik | 43253 | 6.5% |
| Jens Axboe | 28004 | 4.2% |
| Hirokazu Takata | 20399 | 3.1% |
| Yoichi Yuasa | 18368 | 2.8% |
| James Smart | 15626 | 2.4% |
| Jeremy Fitzhardinge | 15398 | 2.3% |
| David S. Miller | 14752 | 2.2% |
| Matthew Wilcox | 14750 | 2.2% |
| Christoph Hellwig | 14550 | 2.2% |
| Rusty Russell | 9452 | 1.4% |
| Imre Deak | 8925 | 1.3% |
| Dan Williams | 8510 | 1.3% |
| Ralf Baechle | 8345 | 1.3% |
| Doug Thompson | 7310 | 1.1% |
| Yoshihiro Shimoda | 6981 | 1.1% |
| Marc St-Jean | 6888 | 1.0% |
| Luca Olivetti | 6540 | 1.0% |
| Cyrill Gorcunov | 6371 | 1.0% |
| Latchesar Ionkov | 5375 | 0.8% |
Ingo Molnar comes out on top of the changesets column by virtue of getting the CFS scheduler merged – then fixing it. Over half of his patches were accepted after 2.6.23-rc1 came out. Ralf Baechle and Paul Mundt both contributed many changes to architecture-specific trees, Trond Myklebust did a lot of NFS work, and, while David Miller had a number of networking patches, the bulk of his changesets were in the architecture-specific (SPARC) trees. The figures on the “by changed lines” side are dominated by code removals (as described above); Jens Axboe also did a bunch of splice work and merged the “bsg” generic SCSI driver. Hirokazu Takata did a bunch of m32r architecture work. James Smart contributed a number of Fibre Channel changes and Jeremy Fitzhardinge merged the core Xen code.
Once again, we have put some effort into associating patches with the companies that supported this work, with the results shown below. These results should always be taken as approximations; we believe that they are essentially correct, but patches do not come with Paid-for-by: headers, so a certain amount of guessing is always required.
Most active 2.6.23 employers
| By changesets | ||
|---|---|---|
| (Unknown) | 1180 | 19.0% |
| Red Hat | 744 | 12.0% |
| (None) | 559 | 9.0% |
| IBM | 507 | 8.2% |
| Novell | 421 | 6.8% |
| Intel | 184 | 3.0% |
| Oracle | 146 | 2.4% |
| Renesas Technology | 134 | 2.2% |
| MIPS Technologies | 119 | 1.9% |
| NetApp | 116 | 1.9% |
| (Consultant) | 103 | 1.7% |
| 99 | 1.6% | |
| NTT | 98 | 1.6% |
| Sony | 93 | 1.5% |
| Astaro | 93 | 1.5% |
| Linux Foundation | 82 | 1.3% |
| MontaVista | 81 | 1.3% |
| SGI | 77 | 1.2% |
| Qumranet | 72 | 1.2% |
| QLogic | 62 | 1.0% |
| By lines changed | ||
|---|---|---|
| (Unknown) | 111777 | 16.9% |
| (None) | 99649 | 15.0% |
| Red Hat | 84224 | 12.7% |
| IBM | 39449 | 5.9% |
| Oracle | 36205 | 5.5% |
| Renesas Technology | 33152 | 5.0% |
| HP | 18718 | 2.8% |
| Tripeaks | 18567 | 2.8% |
| Novell | 17990 | 2.7% |
| Emulex | 15942 | 2.4% |
| XenSource | 15426 | 2.3% |
| Intel | 14962 | 2.3% |
| Sony | 11945 | 1.8% |
| Analog Devices | 10345 | 1.6% |
| rPath | 9678 | 1.5% |
| MIPS Technologies | 9171 | 1.4% |
| Solid Boot Ltd. | 8937 | 1.3% |
| MontaVista | 8065 | 1.2% |
| PMC-Sierra | 6888 | 1.0% |
| Astaro | 6687 | 1.0% |
Red Hat retains its place at the top of the by-changesets list, though its percentage of changes has dropped a bit. By lines changed, developers known to be working on their own time (the “None” entry) beat out all corporate contributors. It is worth noting that much of lines-changed count for those developers is, in fact, lines removed.
Looking at who added Signed-off-by: lines to patches is interesting, especially if one looks at signoffs added by people other than the author of the patch. In this way, one gets an idea of who the gatekeepers are. There is a slight change to how this calculation was done this time around: if a patch carried signoffs from both Linus Torvalds and Andrew Morton, Linus’s was not counted. As a result of how the process works, everything that goes through Andrew gets a signoff from Linus; not counting those signoffs gives a more accurate picture of how the review was actually done.
| Developers with the most signoffs (total 5653) | ||
|---|---|---|
| Andrew Morton | 1247 | 21.6% |
| Linus Torvalds | 397 | 6.9% |
| David S. Miller | 381 | 6.6% |
| Greg Kroah-Hartman | 329 | 5.7% |
| Jeff Garzik | 287 | 5.0% |
| James Bottomley | 264 | 4.6% |
| Paul Mackerras | 223 | 3.9% |
| Mauro Carvalho Chehab | 150 | 2.6% |
| Len Brown | 128 | 2.2% |
| Ralf Baechle | 122 | 2.1% |
| Roland Dreier | 116 | 2.0% |
| Andi Kleen | 113 | 2.0% |
| Russell King | 101 | 1.8% |
| Jaroslav Kysela | 100 | 1.7% |
| John W. Linville | 70 | 1.2% |
| Tony Luck | 65 | 1.1% |
| Takashi Iwai | 63 | 1.1% |
| Jens Axboe | 58 | 1.0% |
| Martin Schwidefsky | 55 | 1.0% |
| Ingo Molnar | 51 | 0.9% |
One question which comes up sometimes is: how do these numbers look for specific parts of the kernel tree? The author duly hacked on his scripts to generate this sort of information. Here is a summary of the results – using the employer by-changesets numbers:
Employer changeset contributions by subsystem
| /arch (1428 total) | ||
|---|---|---|
| (Unknown) | 222 | 15.5% |
| IBM | 198 | 13.9% |
| Red Hat | 128 | 9.0% |
| (None) | 108 | 7.6% |
| Renesas Technology | 101 | 7.1% |
| MIPS Technologies | 89 | 6.2% |
| Sony | 55 | 3.9% |
| Novell | 46 | 3.2% |
| Intel | 46 | 3.2% |
| rPath | 42 | 2.9% |
| /block (103 total) | ||
| NTT | 27 | 26.2% |
| Oracle | 15 | 14.6% |
| (Unknown) | 10 | 9.7% |
| IBM | 8 | 7.8% |
| Red Hat | 6 | 5.8% |
| (None) | 5 | 4.9% |
| Miracle Linux | 4 | 3.9% |
| Computer Consultants | 3 | 2.9% |
| Novell | 3 | 2.9% |
| Sony | 3 | 2.9% |
| /Documentation (241 total) | ||
| (Unknown) | 66 | 27.4% |
| Novell | 27 | 11.2% |
| IBM | 19 | 7.9% |
| Oracle | 19 | 7.9% |
| (None) | 18 | 7.5% |
| Intel | 16 | 6.6% |
| Red Hat | 13 | 5.4% |
| (Consultant) | 6 | 2.5% |
| Freescale | 5 | 2.1% |
| NEC | 4 | 1.7% |
| /drivers (2762 total) | ||
| (Unknown) | 572 | 20.7% |
| (None) | 356 | 12.9% |
| Novell | 237 | 8.6% |
| Red Hat | 236 | 8.5% |
| IBM | 191 | 6.9% |
| Intel | 130 | 4.7% |
| (Consultant) | 68 | 2.5% |
| NTT | 65 | 2.4% |
| Qumranet | 63 | 2.3% |
| QLogic | 61 | 2.2% |
| /fs (622 total) | ||
| Red Hat | 107 | 17.2% |
| Oracle | 80 | 12.9% |
| NetApp | 74 | 11.9% |
| (Unknown) | 72 | 11.6% |
| Novell | 63 | 10.1% |
| IBM | 56 | 9.0% |
| Univ. of Michigan CITI | 35 | 5.6% |
| SGI | 26 | 4.2% |
| (Academia) | 19 | 3.1% |
| SWsoft | 17 | 2.7% |
| /kernel (938 total) | ||
| Red Hat | 259 | 27.6% |
| (Unknown) | 129 | 13.8% |
| IBM | 119 | 12.7% |
| Renesas Technology | 52 | 5.5% |
| (None) | 44 | 4.7% |
| Novell | 36 | 3.8% |
| MIPS Technologies | 31 | 3.3% |
| Fujitsu | 30 | 3.2% |
| Intel | 28 | 3.0% |
| Linutronix | 27 | 2.9% |
| /mm (261 total) | ||
| IBM | 38 | 14.6% |
| (Unknown) | 38 | 14.6% |
| Renesas Technology | 33 | 12.6% |
| SGI | 29 | 11.1% |
| Novell | 24 | 9.2% |
| 19 | 7.3% | |
| Red Hat | 13 | 5.0% |
| (None) | 10 | 3.8% |
| ARM | 7 | 2.7% |
| igel | 6 | 2.3% |
| /net (833 total) | ||
| (Unknown) | 178 | 21.4% |
| Astaro | 92 | 11.0% |
| Red Hat | 87 | 10.4% |
| (None) | 71 | 8.5% |
| IBM | 53 | 6.4% |
| Linux Foundation | 48 | 5.8% |
| NetApp | 47 | 5.6% |
| Broadcom | 23 | 2.8% |
| Intel | 18 | 2.2% |
| HP | 17 | 2.0% |
From these numbers, one might conclude that Red Hat developers are strong in the core kernel area, but they don’t much like writing documentation. There is a lot of “hobbyist” participation in the driver subtree – not a particularly surprising result, since making a specific device work is a common itch for developers to scratch. Academics like to play with filesystems, as do, unsurprisingly, companies like Oracle and NetApp.
Beyond being approximate, all of the numbers shown above will change a bit before the final 2.6.23 release, which is probably at least three weeks away. The patches which will be merged in the coming weeks should all be fixed, though, so the changes will, with any luck at all, be small. All told, 2.6.23 shows an active kernel development community with contributions from a large number of developers – and quite a few companies which employ them. The kernel remains a vibrant and alive base on which to build our free systems.
(Thanks are due to Greg Kroah-Hartman for his contributions to the scripts used to generate these statistics).




