|
|
Subscribe / Log in / New account

Some numbers and thoughts on the stable kernels

By Jonathan Corbet
August 27, 2010
Much attention goes toward mainline kernel releases, but relatively few users are actually running those kernels. Instead, they run kernels provided by their distributors, and those kernels, in turn, are based off the stable kernel series. The practice of releasing stable kernels has been going for well over five years now, so perhaps it's time to look back at how it has been going.

Back in March 2005, the community was discussing ways of getting important fixes out to users of mainline releases. There was talk of maintaining a separate tree containing nothing but fixes; Linus, at the time, thought that any such attempt was doomed to failure:

I'll tell you what the problem is: I don't think you'll find anybody to do the parallel "only trivial patches" tree. They'll go crazy in a couple of weeks. Why? Because it's a _damn_ hard problem. Where do you draw the line? What's an acceptable patch? And if you get it wrong, people will complain _very_ loudly, since by now you've "promised" them a kernel that is better than the mainline. In other words: there's almost zero glory, there are no interesting problems, and there will absolutely be people who claim that you're a dick-head and worse, probably on a weekly basis.

With such strong words of encouragement, somebody clearly had to step up to the job; that somebody turned out to be Greg Kroah-Hartman and Chris Wright. They released 2.6.11.1 on March 4, 2005 with all of three fixes. More than five years later, Greg (a.k.a. "Og") is still at it (Chris has not been active with stable updates for a while). During that time, the stable release history has looked like this:

Kernel UpdatesChanges
TotalPer release
2.6.1112797
2.6.126539
2.6.135449
2.6.1479614
2.6.15711016
 
2.6.1662105317
2.6.171419114
2.6.18824030
2.6.19718927
2.6.202144721
 
2.6.21716223
2.6.221937920
2.6.231630219
2.6.24724635
2.6.252049225
 
2.6.26832140
2.6.27 531553 29
2.6.281061361
2.6.29638364
2.6.301041942
 
2.6.311482659
2.6.32 21179385
2.6.337883126
2.6.345599120
2.6.35 422857

In the table above, the kernels appearing in bold are those which are still receiving stable updates as of this writing (though 2.6.27 is clearly reaching the end of the line).

A couple of conclusions immediately jump out of the table above. The first is that the number of fixes going into stable updates has clearly increased over time. From this one might conclude that our kernel releases have steadily been getting buggier. That is hard to measure, but one should bear in mind that there is another important factor at work here: the kernel developers are simply directing more fixes toward the stable tree. Far more developers are looking at patches with stable updates in mind, and suggestions that a patch should be sent in that direction are quite common. So far fewer patches fall through the cracks than they did in the early days.

There is another factor at work here as well. The initial definition of what constituted an appropriate stable tree patch was severely restrictive; if a bug did not cause a demonstrable oops or vulnerability, the fix was not considered for the stable tree. By the time we get to the 2.6.35.4 update, though, we see a wider variety of "fixes," including Acer rv620 laptop support, typo fixes, tracepoint improvements to make powertop work better, the optimistic spinning mutex scalability work, a new emu10k1 sound driver module parameter, and oprofile support for a new Intel processor. These enhancements are, arguably, all things that stable kernel users would like to have. But they definitely go beyond the original charter for this tree.

Your editor has also, recently, seen an occasional complaint about regressions finding their way into stable updates; given the volume of patches going into stable updates now, a regression every now and then should not be surprising. Regressions in the stable tree are a worrisome prospect; one can only hope that the problem does not get worse.

Another noteworthy fact is that the number of stable updates for most kernels appears to be falling slowly; the five updates for the entire 2.6.34 update history is the lowest ever, matched only by the 2.6.13 series. Even then, 2.6.34 got one more update than had been originally planned as the result of a security issue. It should seem obvious that handling this kind of patch flow for as many as four kernels simultaneously will be a lot of work; Greg, who has a few other things on his plate as well, may be running a little short on time.

Who is actually contributing patches to stable kernels? Your editor decided to do a bit of git data mining. Two kernels were chosen: 2.6.32, which is being maintained for an extended period as the result of its use in "enterprise" distributions, and 2.6.34, being the most recent kernel which has seen its final stable update. Here are the top contributors for both:

Most active stable contributors
2.6.32
Greg Kroah-Hartman362.0%
Daniel T Chen321.8%
Linus Torvalds231.3%
Trond Myklebust231.3%
Borislav Petkov231.3%
Ben Hutchings211.2%
David S. Miller201.1%
Theodore Ts'o201.1%
Tejun Heo201.1%
Dmitry Monakhov201.1%
Takashi Iwai181.0%
Ian Campbell181.0%
Jean Delvare170.9%
Henrique de Moraes Holschuh170.9%
Yan, Zheng170.9%
Zhao Yakui170.9%
Alan Stern170.9%
Al Viro160.9%
Alex Deucher150.8%
Dan Carpenter150.8%
2.6.34
Alex Deucher142.8%
Joerg Roedel142.8%
Tejun Heo102.0%
Daniel T Chen91.8%
Neil Brown81.6%
Rafael J. Wysocki81.6%
Linus Torvalds71.4%
Greg Kroah-Hartman71.4%
Alan Stern71.4%
Jesse Barnes71.4%
Trond Myklebust71.4%
Ben Hutchings71.4%
Tilman Schmidt71.4%
Avi Kivity71.4%
Sarah Sharp71.4%
Ian Campbell61.2%
Johannes Berg61.2%
Jean Delvare61.2%
Johan Hovold61.2%
Will Deacon51.0%

Some names on this list will be familiar. Linus never shows up on the list of top mainline contributors anymore, but he does generate a fair number of stable fixes. Other names are seen less often in the kernel context: Daniel Chen, for example, is an Ubuntu community contributor; his contributions are mostly in the welcome area of making audio devices actually work. Some of the people are in the list above because they introduced the bugs that their patches fix - appearing in that role is not necessarily an honor. But - admittedly without having done any sort of rigorous study - your editor suspects that most of the people listed above are fixing bugs introduced by others. They are performing an important and underappreciated service, turning mainline releases into kernels that the rest of the world actually wants to run.

We can also look at who is supporting this work:

Most active stable contributors by employer
2.6.32
(None)27515.3%
Red Hat26714.9%
Intel19410.8%
(Unknown)1759.8%
Novell1669.3%
IBM955.3%
AMD603.3%
Oracle402.2%
Fujitsu331.8%
Atheros301.7%
Parallels291.6%
Citrix271.5%
(Academia)261.5%
Linux Foundation241.3%
NetApp231.3%
Google231.3%
(Consultant)201.1%
NEC181.0%
Canonical150.8%
Nokia140.8%
2.6.34
(None)9518.7%
Red Hat6112.0%
(Unknown)5811.4%
Novell458.9%
Intel438.5%
AMD356.9%
IBM173.3%
(Academia)163.1%
MontaVista91.8%
Fujitsu91.8%
ARM81.6%
Citrix81.6%
NetApp71.4%
Oracle71.4%
(Consultant)71.4%
Linux Foundation71.4%
Google61.2%
Nokia61.2%
NTT51.0%
VMWare51.0%

These numbers quite closely match those for mainline kernel contributions, especially at the upper end. Fixing bugs is said to be boring and unglamorous work, but volunteers are still our leading source of fixes.

We did without a stable tree for the first ten 2.6.x releases, though, at this point, it's hard to imagine just how. In an ideal world, a mainline kernel release would not happen until there were no bugs left; the history of (among others) the 2.3 and 2.5 kernel development cycles shows that this approach does not work in the real world. There comes a point where the community has to create a stable release and go on to the next cycle; the stable tree allows that fork to happen without ending the flow of fixes into the released kernel.

The tables above suggest that the stable kernel process is working well, with large numbers of fixes being directed into stable updates and with participation from across the community. There may come a point, though, where that community needs to revisit the standards for patches going into stable updates. At some point, it may also become clear that the job of maintaining these kernels is too big for one person to manage. For now, though, the stable tree is clearly doing what it is intended to do; Greg deserves a lot of credit for making it work so well for so long.

Index entries for this article
KernelDevelopment model/Stable tree
KernelReleases/Stable updates


to post comments

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 20:30 UTC (Fri) by yokem_55 (subscriber, #10498) [Link]

Given the shear ubiquitous availability of .32 kernels (everything from Froyo Android devices to routers to enterprise os's), I will predict that that stable series will have a supported life far longer than the previous 2 extended support 2.6 kernels (.16 and .27).

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 20:38 UTC (Fri) by flewellyn (subscriber, #5047) [Link] (10 responses)

Linus was certainly right about one thing: there are indeed people who claim that Greg KH is a dickhead and worse, on a weekly basis. Such comments are as productive as one might expect.

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 7:17 UTC (Sat) by Hknr (guest, #67789) [Link] (7 responses)

Well, Greg KH *is* a dickhead, no question about it.
He's one of the few kernel guys whose messages go straight
to /dev/null in my LKML filter. This also lowers the
traffic by a considerable amount as you no longer see
his endless "stable preview" threads.

unpolite, unrespectful, uninformative and subjective

Posted Aug 28, 2010 13:07 UTC (Sat) by dmk (guest, #50141) [Link]

From the LWN Comment editor:
<quote>Please try to be polite, respectful, and informative, and to provide a useful subject line.</quote>

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 20:56 UTC (Sat) by ncm (guest, #165) [Link]

Now I know where to send Hknr messages.

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 2:56 UTC (Sun) by zooko (guest, #2589) [Link] (3 responses)

Hey where is that tool for filtering the comments of certain posters out of your view of LWN?

Filtering

Posted Aug 29, 2010 3:44 UTC (Sun) by corbet (editor, #1) [Link] (2 responses)

It's in the My Account area.

Filtering

Posted Aug 29, 2010 14:03 UTC (Sun) by zooko (guest, #2589) [Link]

Hey thanks, it works nicely!

Filtering ENABLED

Posted Aug 30, 2010 14:49 UTC (Mon) by mebrown (subscriber, #7960) [Link]

Nice! Thanks!

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 9:36 UTC (Sun) by erwbgy (subscriber, #4104) [Link]

Well, that may be true, but he is definitely a more useful dickhead than you are.

Some numbers and thoughts on the stable kernels

Posted Aug 31, 2010 12:00 UTC (Tue) by njd27 (subscriber, #5770) [Link] (1 responses)

Are there any signs of him going crazy yet?

Some numbers and thoughts on the stable kernels

Posted Aug 31, 2010 12:17 UTC (Tue) by macson_g (guest, #12717) [Link]

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 21:21 UTC (Fri) by spender (guest, #23067) [Link] (10 responses)

"volunteers are still our leading source of fixes"

Though volunteers beat out any other single company source of fixes, if I'm interpreting the chart correctly for 2.6.32, (100% - 15.3%) = 84.7% are coming from companies.

That said, I can imagine a good amount of the patches being submitted from company email addresses (which is what I assume the stats are generated off of) are done when the employee is "off the clock."

So my question: do we (and how do we) actually know how much of the kernel development is really a volunteer effort?

BTW, I've never seen anyone on this site call Greg a "dickhead" or anything close to it (I did a search to check, feel free to do your own). Some people, myself included, disagree with how security is conveyed and sometimes handled, but it's a gross mischaracterization to equate that with childish ad-hominem attacks that were never uttered.

I appreciate the effort Greg puts into the stable releases -- it's certainly a lot of work. As for the major "enterprise" distributions that benefit from Greg's work, do we know what else they could be doing in addition to contributing fixes to lessen the burden?

-Brad

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 21:42 UTC (Fri) by jspaleta (subscriber, #50639) [Link]

I wouldn't make the assumption about how corporate involvement is ascertained. I believe the author can go into detail as to how that is done if you need it clarified.

-jef

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 21:55 UTC (Fri) by drag (guest, #31333) [Link]

The amount of contributions, by lines of code or by patches, does not translate directly to bug fixes. Most of them are probably features and drivers.

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 21:59 UTC (Fri) by corbet (editor, #1) [Link] (3 responses)

Who is ever really off the clock in this field?

A patch posted from a company email address is assumed to be posted with that company's blessing. Anybody who doesn't have that blessing is probably violating all kinds of rules. In short: when somebody posts a patch, in the absence of information to the contrary, we attribute it to their employer. The results are necessarily approximate, but I'm not sure how to do them better.

Some numbers and thoughts on the stable kernels

Posted Aug 30, 2010 8:04 UTC (Mon) by spaetz (guest, #32870) [Link] (1 responses)

>Who is ever really off the clock in this field?

As a side note, I have seen some research on commit patterns across projects and it was really entertaining to see some projects following strict Mo-Fri 9-5 patterns while others (also including commercial developers) committed all over the place including weekends, nights etc.

I would love to see that research across a wide range

Some numbers and thoughts on the stable kernels

Posted Aug 31, 2010 21:16 UTC (Tue) by hingo (guest, #14792) [Link]

I've been playing with the idea of producing similar stats for MySQL/MariaDB development, to benchmark it against Linux and other similar projects. This is an excellent idea to add to the analysis! Thanks.

Some numbers and thoughts on the stable kernels

Posted Aug 31, 2010 16:00 UTC (Tue) by bfields (subscriber, #19510) [Link]

If I read lwn at work, am I shirking? If I read it after hours, am I bringing my work home with me? Help!

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 0:04 UTC (Sat) by mpr22 (subscriber, #60784) [Link]

People almost never call anyone a dickhead on LWN :)

Some numbers and thoughts on the stable kernels

Posted Aug 30, 2010 16:57 UTC (Mon) by ironiridis (guest, #60586) [Link]

With regard to "never" seeing someone call GKH a dickhead, you might have comments from Hknr filtered on LWN.

Some numbers and thoughts on the stable kernels

Posted Sep 11, 2010 11:01 UTC (Sat) by gvy (guest, #11981) [Link] (1 responses)

> "volunteers are still our leading source of fixes"
Well, I tried to get the patch for deadlock issue our folks have nailed down and fixed (it was rather worked around upstream) along at least into 2.6.27.y since this summer, and so far rather failed to bring attention to the issue:

https://bugzilla.kernel.org/show_bug.cgi?id=15658

Tried to forward the message with brief explanation to LKML on Aug 28 but seems like it didn't pass through (at least not to lkml.org archive).

I've re-read all of tux.org/lkml just in case, but still need advice on *how* volunteers should pass the fixes for such non-obvious issues?

Thanks anyone who might find some time to aid with this one.

Some numbers and thoughts on the stable kernels

Posted Aug 16, 2012 13:20 UTC (Thu) by gvy (guest, #11981) [Link]

For the record, that bugfix has been discussed and accepted within two weeks of moving the bugreport to LKML and within something like 8 hours of wall clock. A lil' more patience ;-)

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 21:44 UTC (Fri) by spender (guest, #23067) [Link] (2 responses)

Third question: is there a reason why there is no mention of Adrian Bunk in the article?

-Brad

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 21:57 UTC (Fri) by corbet (editor, #1) [Link] (1 responses)

Is there some context in which Adrian should have been mentioned? I didn't talk about 2.6.16, really...and he hasn't really been present in the kernel community for a while now.

Some numbers and thoughts on the stable kernels

Posted Sep 6, 2010 9:29 UTC (Mon) by lacostej (guest, #2760) [Link]

Any reason why Adrian has 'left' the community?

I loved to see his dedication. Has someone taken his role?

Some numbers and thoughts on the stable kernels

Posted Aug 27, 2010 23:42 UTC (Fri) by nicooo (guest, #69134) [Link] (2 responses)

What are the criteria for deciding which kernels will be supported? (e.g. what makes 2.6.27 different from .26 or .28)

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 1:17 UTC (Sat) by dlang (guest, #313) [Link] (1 responses)

this is where it gets interesting.

it can be that someone just volunteers to maintain it after Greg finishes with it, it can be that one (or more in the case of ) major distros base their release kernel off of it, and as a result someone takes on the maintenance of the kernel after it would finish the normal process.

about the only criteria is an elimination criteria. Namely that the kernel in question must not have a disastrous amount of regressions discovered in the normal -stable period.

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 15:00 UTC (Sat) by BenHutchings (subscriber, #37955) [Link]

We discussed this at the LPC last year. If I remember correctly, Greg's answer was that:
1. Distributions need to let him know which stable releases they want to keep going.
2. They need to help in gathering updates, and potentially to take over maintenance.

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 7:44 UTC (Sat) by dambacher (subscriber, #1710) [Link]

What I miss in the figures is the duration (e.g. in weeks) a kernel was maintained -> wich was a long time kernel and wich one was really rotten

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 19:01 UTC (Sat) by maks (guest, #32426) [Link] (10 responses)

Your stats concerning the personal contribution to stable seem at first look pretty screwed:

First of all it is not easy to find the one that forwarded a particular patch to stable.
Secondly most in all times this random person gets gets showed into the Cc: of the stable patch and thus is not distinguisable from usual Cc's that happen to be listed there.

A quick grep in the stable queue 2.6.32 releases showed 47 contributions of mine, but I'm 100% sure not to be the top contributor of it. But that forwarded patch number is certainly a lower bound.

Please explain how you generated the stats concerning the most active contributor. Thanks.

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 19:16 UTC (Sat) by corbet (editor, #1) [Link] (9 responses)

I simply look at the author of each patch as is shown in the stable git repository.

A quick look through 2.6.32.y shows you CC'd on a number of patches, but you are not the author of them in stable or mainline. Am I missing something?

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 19:46 UTC (Sat) by josh (subscriber, #17465) [Link] (7 responses)

I think maks (AKA maximilian attems, one of the Debian kernel maintainers) is suggesting that in addition to crediting the author of the patch, for stable patches it seems appropriate to note the person who dug up a patch from mainline that fixed a particular bug and passed it along to stable@ for inclusion in a stable kernel, even if they didn't *write* the mainline patch. And I'd agree with that; while not the same metric as counting authors, it seems a useful metric for stable kernels.

On that note, thanks to maks and the other Debian kernel maintainers for doing an awesome job. :)

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 19:57 UTC (Sat) by corbet (editor, #1) [Link] (3 responses)

I agree it would be nice to credit people who do that kind of work. There is really no information trail at the moment which would make that possible, though. Maybe we need a Spotted-by: tag to mark patches directed to stable by people other than their author?

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 0:46 UTC (Sun) by hmh (subscriber, #3838) [Link] (2 responses)

Yes, that would be nice.

Also, when there is no "spotted-by:" but there is a "cc: stable", it likely means that the patch author noticed it should go into stable.

That said, I think "stable-proposal-by" would be a better tag.

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 14:44 UTC (Sun) by eduard.munteanu (guest, #66641) [Link] (1 responses)

Hm, a simple "Signed-off-by:" should suffice. It's already standard practice for people who maintain their own tree and relay stuff upstream, and usually those trees are rebased often. So it might make sense to use that for singular cases as well (even if they're not merges).

This...

Signed-off-by: <original author>
Signed-off-by: <maintainer>
Signed-off-by: Linus Torvalds

Could turn into this...

Signed-off-by: <original author>
Signed-off-by: <spotter>
Signed-off-by: Greg KH

Possibly with some variation, such as whether or not you keep the maintainer in the Signed-off-by chain.

Some numbers and thoughts on the stable kernels

Posted Aug 30, 2010 22:32 UTC (Mon) by bfields (subscriber, #19510) [Link]

Hm, a simple "Signed-off-by:" should suffice.

Yeah. Here's a previous discussion, where Linus says:

So when you save a patch from oblivion by passing it on to the right person, and get it submitted when it was originally dropped by some reason, you're actually doing a fundamentally important job. Maybe it's just one small piece of the puzzle, but hey, you'd only get one small line in the changeset, so the credit (or blame ;) really is appropriate.

Some numbers and thoughts on the stable kernels

Posted Aug 28, 2010 23:44 UTC (Sat) by ncm (guest, #165) [Link] (1 responses)

Yes, thanks Maks! I just loaded linux-image-2.6.35-1~experimental.2 on a Dell Latitude D430 sid and it fixed the suspend/resume problems. (Q though: why does it depend on a linux-base that doesn't exist?)

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 13:00 UTC (Sun) by maks (guest, #32426) [Link]

linux-base is used for the UUID transition. In Ubuntu it was the udev package that renamed the fstab and some bootloaders. afais linux-base is in experimental. When installing from exp one needs to tell apt to do so with ``-t'' switch aka:
apt-get install linux-image-2.6.35-trunk-amd64 -t experimental

Hope that helps otherwise please ask on debian-kernel mailinglist.

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 13:05 UTC (Sun) by maks (guest, #32426) [Link]

Thanks josh for clearing up and your nice comment. :)

As one can see on aboves authorship table Ben Hutchings is doing an incredible great job in the last year.

Some numbers and thoughts on the stable kernels

Posted Aug 29, 2010 12:56 UTC (Sun) by maks (guest, #32426) [Link]

Ok thanks for the explanations.

Got confused by the title of the table "Most active stable contributors" and thought it was about the ones that notify stable. Could then be renamed to "Most active stable authors".

Indeed there is currently no possibility to easily see who forwarded the patches to gregkh.


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