[go: up one dir, main page]

|
|
Log in / Subscribe / Register

Some development statistics for 2.6.26 - and beyond

By Jonathan Corbet
July 2, 2008
When 2.6.26-rc1 was released, your editor noted that, at a mere 7500 commits, it looked like 2.6.26 would be a smaller than usual development cycle. Interestingly, though, 2.6.26 has caught up. As of this writing (waiting for 2.6.26-rc9), this development cycle has incorporated 10,102 changesets for a net addition of 169,439 lines of code to the kernel. That makes it still significantly smaller than 2.6.25, but it is, by no means small. The developer base remains as broad as ever: 1065 developers (representing some 150 companies) have contributed to 2.6.26; just over 1/3 of those developers contributed one single changeset.

The 2.6 development model says that the bulk of the changes should be merged during the merge window (before the -rc1 release), with only fixes coming thereafter. Here's how things break down for recent releases:

ReleaseChangesets merged
For -rc1after -rc1
2.6.2345052570
2.6.2471323221
2.6.2596293078
2.6.2675552577

So, while the bulk of the big patches enter the kernel during the merge window, at least 25% of the total - and often more - come thereafter. That's a lot of fixes.

So who were the most active developers this time around? Here's the top 20:

Most active 2.6.26 developers
By changesets
Harvey Harrison2182.2%
Bartlomiej Zolnierkiewicz1971.9%
Glauber Costa1951.9%
Adrian Bunk1801.8%
Joe Perches1601.6%
Pavel Emelyanov1481.5%
Ingo Molnar1441.4%
Denis V. Lunev1401.4%
Michael Krufky1301.3%
Mauro Carvalho Chehab1161.1%
Al Viro1141.1%
David S. Miller1031.0%
Tejun Heo960.9%
Johannes Berg960.9%
Alan Cox910.9%
Takashi Iwai880.9%
YOSHIFUJI Hideaki850.8%
Alexey Starikovskiy840.8%
Ivo van Doorn800.8%
Bjorn Helgaas770.8%
By changed lines
Stephen Hemminger417625.9%
Adrian Bunk285234.0%
David S. Miller191782.7%
Steven Toth186812.6%
Ben Hutchings155352.2%
Frank Blaschka145272.0%
Xiantao Zhang129351.8%
Hans Verkuil123931.7%
Tejun Heo104621.5%
Sebastian Siewior95191.3%
Harvey Harrison91611.3%
Peter Tiedemann84831.2%
Matthew Wilcox80591.1%
Paul Walmsley76351.1%
Kumar Gala71521.0%
Andrew Victor70621.0%
Johannes Berg65440.9%
Glauber Costa62600.9%
Mike Frysinger61770.9%
Joe Perches57730.8%

In terms of the number of changesets merged, Harvey Harrison got to the top of the list with a wide variety of of janitorial fixes. Bartlomiej Zolnierkiewicz continues to put significant effort into cleaning up the IDE subsystem, even though most distributors have moved away from that code and are using the newer PATA layer instead. Glauber Costa has been tirelessly working in the x86 architecture code; in particular, he continues to work toward the goal of unifying the 32-bit and 64-bit code to the greatest extent possible. Adrian Bunk has made a career of cleaning up the code base and eliminating unneeded code. And Joe Perches dedicated much time to eliminating warnings from the checkpatch.pl script.

There have been complaints from the developers that the volume of "cleanup" patches is reaching a point that it is drowning out the rest and interfering with "real work." We're seeing some of that volume here, with three of the top five changeset contributors doing cleanup work - some of which is seen to be more valuable than the rest.

On the lines changed side, we see a mostly different set of developers. In this case, the top slots were earned by deleting code. Stephen Hemminger finally succeeded in getting rid of the old sk98lin driver. Adrian Bunk tore out the bcm43xx driver, the ieee80311 software MAC layer, the xircom_tulip_cb driver, and various other bits and pieces. David Miller removed a bunch of old SPARC code, but replaced it with various other facilities; he also took the PowerPC low-level memory manager and made it generic. Steven Toth works in the Video4Linux layer; he added some new drivers and a bunch of cleanups. Ben Hutchings added the Solarstorm SFC4000 driver.

When one thinks about 2.6.26 features, the things that come to mind include KGDB, almost-ready network namespaces, almost-ready mesh networking support, a working (shall we say "almost ready"?) realtime group scheduler, read-only bind mounts, page attribute table support, the object debugging infrastructure, and, of course, the vast pile of new drivers. One has to look hard to find the developers behind that work in the lists above (some of them are certainly there). Which just reinforces an important point: there is interest and information in counting changesets and lines changed, but the correlation between those numbers and serious accomplishments in kernel programming is weak at best. Unfortunately, "real work" is awfully hard to measure in any sort of automated way.

So what the heck; we'll go back to the numbers we can measure. Here's the most active companies for 2.6.26:

Most active 2.6.26 employers
By changesets
(None)208520.6%
Red Hat113011.2%
(Unknown)9068.9%
IBM6096.0%
Novell5975.9%
Intel4694.6%
Parallels3123.1%
SGI2112.1%
Movial1801.8%
Oracle1421.4%
Analog Devices1341.3%
HP1241.2%
MontaVista1221.2%
(Consultant)1161.1%
Freescale1091.1%
QLogic971.0%
Fujitsu950.9%
Google940.9%
(Academia)890.9%
Marvell880.9%
By lines changed
(None)11170315.7%
IBM7360110.3%
Red Hat563317.9%
Intel502977.1%
(Unknown)446996.3%
Vyatta418355.9%
Novell337454.7%
Movial286324.0%
Hauppauge202342.8%
Analog Devices183632.6%
(Consultant)163972.3%
Solarflare 155852.2%
Freescale150902.1%
MontaVista140132.0%
QLogic133271.9%
SGI103511.5%
Marvell78811.1%
Wind River77701.1%
Oracle76801.1%
Pengutronix73341.0%

This list tends not to change too much from one release to the next; in particular, the top companies are always the same.

If we look at who is attaching Signed-off-by tags to code they didn't write, we get a sense for who the gatekeepers to the kernel are. These are the developers and companies who are herding code into the mainline:

Sign-offs in the 2.6.26 kernel
By developer
Andrew Morton137714.1%
Ingo Molnar9619.8%
David S. Miller6676.8%
John W. Linville5515.6%
Mauro Carvalho Chehab5435.6%
Jeff Garzik4714.8%
Thomas Gleixner2792.9%
Greg KH2672.7%
Linus Torvalds2562.6%
Paul Mackerras2202.2%
Takashi Iwai2082.1%
James Bottomley2032.1%
Len Brown2002.0%
Russell King1671.7%
Avi Kivity1601.6%
Bryan Wu1401.4%
Roland Dreier1301.3%
Lachlan McIlroy1081.1%
Bartlomiej Zolnierkiewicz941.0%
Ralf Baechle931.0%
By employer
Red Hat301030.8%
Google137814.1%
(None)100010.2%
Novell7317.5%
IBM5775.9%
Intel4975.1%
linutronix2832.9%
Linux Foundation2562.6%
(Unknown)2062.1%
(Consultant)2062.1%
Hansen Partnership2032.1%
SGI1661.7%
Qumranet1601.6%
Analog Devices1491.5%
Cisco1301.3%
MIPS Technologies931.0%
Oracle570.6%
Freescale550.6%
Renesas Technology540.6%
Univ. of Michigan CITI470.5%

Once again, these numbers tend not to change that much from one development cycle to the next. Subsystem maintainers do not change often.

What's next?

This is the first full development cycle where the linux-next tree was in operation. At this stage in the cycle, linux-next should look very much like 2.6.27 - or, at least, 2.6.27-rc1. Your editor pulled the July 2 linux-next tree and ran some statistics; this tree contains 6527 changesets from 619 developers. Just over 400,000 lines of code are touched, with a net addition of 38,000 lines.

If linux-next is to be believed, the most active 2.6.27 developers will be:

Most active pre-2.6.27 developers
By changesets
Avi Kivity4997.6%
Artem Bityutskiy2924.5%
Bartlomiej Zolnierkiewicz1502.3%
Ingo Molnar1422.2%
Yinghai Lu1392.1%
Adrian Hunter1211.9%
Alan Cox1011.5%
Xiantao Zhang1001.5%
Tomas Winkler911.4%
Rusty Russell891.4%
David Woodhouse861.3%
Adrian Bunk841.3%
Steven Rostedt831.3%
Jonathan Corbet741.1%
Arnd Bergmann731.1%
Jean Delvare671.0%
Harvey Harrison641.0%
David Chinner631.0%
Lennert Buytenhek610.9%
Thomas Gleixner610.9%
By changed lines
David Woodhouse448336.7%
Artem Bityutskiy418916.3%
Eilon Greenstein186142.8%
Xiantao Zhang172232.6%
Alan Cox148502.2%
Jaswinder Singh108051.6%
David Brownell96181.4%
Stephen Rothwell90431.4%
Lennert Buytenhek90291.3%
Avi Kivity85931.3%
Steven Rostedt79231.2%
Adrian Bunk74241.1%
Laurent Pinchart72001.1%
Yinghai Lu68501.0%
Yaniv Rosner65121.0%
Carsten Otte64421.0%
Tomas Winkler62500.9%
Josh Boyer52920.8%
Adrian Hunter51550.8%
Michael Chan51330.8%

These numbers reflect a number of the larger developments which can be expected for 2.6.27: incredible amounts of KVM work, the merging of the UBIFS filesystem, the ftrace tracing framework, a lot of reworking of the TTY layer, a lot of firmware thrashing, and ongoing big kernel lock removal work.

It will be most interesting to see how these numbers compare with what actually shows up in 2.6.27-rc1. Recent numbers suggest that quite a few patches will hit the mainline without having been in the linux-next tree - either that, or 2.6.27 will be a relatively small release. If nothing else, we will see which developers do not yet get their work into linux-next for integration testing ahead of the merge window.

Index entries for this article
KernelReleases/2.6.26


to post comments

check -rc2 instead of -rc1

Posted Jul 3, 2008 6:18 UTC (Thu) by dlang (guest, #313) [Link]

in theory -rc1 is supposed to have all the major new stuff in it, but in practice Linus
frequently uses -rc1 as a mid-merge status point, getting large numbers of additional changes
shortly after -rc1 (mostly from andrew and other top maintainers) In some cases this is
becouse the changes introduced in -rc1 require adapting other patches to work with them
(something that -next may help with), in other cases it's that people like andrew are busy
checking and reviewing patches during the -rc1 timeframe, and so Linus seems to pull from them
just after it.

so I suspect that your table of changes per -rc would show an even bigger drop-off after -rc2
then it does after -rc1.

2.6.27 KVM numbers are incorrect

Posted Jul 3, 2008 7:49 UTC (Thu) by avik (guest, #704) [Link] (3 responses)

The commit count is an artifact of how the kvm git tree is managed.

In reality expect around 60 commits for 2.6.27-rc1 (well below the kvm average).

2.6.27 KVM numbers are incorrect

Posted Jul 3, 2008 11:44 UTC (Thu) by Felix_the_Mac (guest, #32242) [Link] (2 responses)


Avi,

I am unsure how the KVM changelog (http://kvm.qumranet.com/kvmwiki/ChangeLog) relates to the
kernel version.

i.e. Will 2.6.26-release contain all (kernel parts) of KVM-70?
Or will that be in 2.6.27-rc1?

How can one tell?

Thanks

2.6.27 KVM numbers are incorrect

Posted Jul 3, 2008 13:56 UTC (Thu) by avik (guest, #704) [Link] (1 responses)

There's no 1:1 correspondence.

kvm-nn releases are development snapshots, really, and contain new features, bug fixes, and
new bugs.

Linux releases will generally contain the last kvm snapshot before the merge windows starts,
and bug fixes that accumulate in the 2+ months up to the release.  So 2.6.27-rc1 will roughly
contain kvm-70 plus all bug fixes since applied.

2.6.27 KVM numbers are incorrect

Posted Jul 6, 2008 11:59 UTC (Sun) by Felix_the_Mac (guest, #32242) [Link]

Thanks for the explanation.

"So 2.6.27-rc1 will roughly contain kvm-70 plus all bug fixes since applied."

Unless KVM-71 comes out soon! :-)



Some development statistics for 2.6.26 - where is paulus?

Posted Jul 3, 2008 8:21 UTC (Thu) by arnd (subscriber, #8866) [Link]

In terms of changed lines, I would expect Paul Mackerras to be right at 
the top for 2.6.27, since we're removing the old arch/ppc architecture 
code that has around 140,000 lines.

I realize that counting removed files is somewhat tricky as you don't want 
to count renamed files as a significant contribution, but IMHO removing 
entire files is just as important as adding new ones.

Reviewed-By tags?

Posted Jul 3, 2008 13:25 UTC (Thu) by alex (subscriber, #1355) [Link]

Have these been introduced yet? If so it would be nice to see the stats so appropriate praise
could be lavished on these noble souls.

Some development statistics for 2.6.26 - and beyond

Posted Jul 3, 2008 13:25 UTC (Thu) by simlo (guest, #10866) [Link]

When I look at "Most active 2.6.26 employers" I see that the Linux companies (RedHat, Novell)
are placed relatively higher when scored by changesets than by number of lines, whereas
"traditional" companies (Intel, IBM) are the other way around. Are Linux companies simply
better at breaking down the patches in small digestable chunks, where as the others develop a
big thing a commit the lot? Or is because the big companies develop large features where as
the Linux companies do much of the bug-fixing?

correlation and serious work

Posted Jul 6, 2008 3:25 UTC (Sun) by pflugstad (subscriber, #224) [Link]

Which just reinforces an important point: there is interest and information in counting changesets and lines changed, but the correlation between those numbers and serious accomplishments in kernel programming is weak at best.

Maybe it would be interesting to re-run the numbers, but skip the drivers/ tree?

academics

Posted Jul 8, 2008 14:26 UTC (Tue) by kh (guest, #19413) [Link]

I wonder if it would be worth sorting the top 10 or 20 universities, it might be interesting
to prospective students as well as giving kudos to departments that deserve them.

Some development statistics for 2.6.26 - and beyond

Posted Jul 17, 2008 20:29 UTC (Thu) by greened (guest, #52956) [Link]

It's distressing to read Jonathan buy into the "real work" BS.  Code 
cleanup *is* real work.  I would argue it's more important than feature 
work.  The more you stabilize your base, the easier it is to add new 
features.

Far too many programmers dismiss the contributions of those who work 
tirelessly to clean up our messes.


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