Two weeks back was the Linux Kernel Developers Summit.
The Kernel Summit is a two day, developer-to-developer, invite-only conference
where the kernel hackers sit down and talk about our feelings. It is not,
unfortunately, a hack fest. Instead, the big arguments too heated or otherwise
involved for the mailing lists are discussed. An attempt is made to reach
consensus on the future direction of the kernel. A cabal at its best.
For whatever reason, I failed to blog the conference from the conference.
To make reparations, here and now I will go over some of my thoughts.
Monday started pretty slowly. It was fairly clear, right off the bat, that
this conference would mirror last year - little contention and lots of
agreement. Compared to the summit two and three years ago, the lack of violent
disagreement is always surprising. It certainly drives home the point
about the state of kernel development. We started off with a processor panel,
which was pretty neat. Both Intel and AMD provided us with honest-to-god new
information and not a marketing spiel. We moved on to virtual memory, software
suspend, kobjects, and then video drivers. For that session, the always
charming Keith Packard stopped by to give us an overview of the current world
of graphics hardware and the current situation with video drivers. We discussed
where to go from there. I told him to be really harsh on us. I do not think
he was harsh enough, but he definitely got across the point that the current
DRI-fb-X menage a trois is not the way to go.
Following Keith's session, I chaired a session on improving desktop performance from the kernel's point of view. Issues such as boot time, interactivity,
desktop-optimized I/O schedulers, and a reduction in the need for polling were
discussed. Linus pointed out that he traced some desktop application and it
made 30,000 system calls, touching thousands of files, in the initial seconds
of start up. Clearly, he noted, the onus lies more so on these applications
than the kernel for improvement.
Tuesday found a customer panel and topics on clustered storage, kexec, RAS,
networking, asynchronous I/O, multipath I/O, virtualization, security, CKRM,
and OSDL. Much of it was yawn material.

Kernel Summit Group Photo
The final session raised some contention. As
Slashdot and other fine news reporting
agencies have noted, we have decided to delay the release of 2.7. Yes,
delay, not cancel. I have never been a huge fan of the kernel development
process - especially after working on GNOME - but I am cautiously interested in
this new direction for 2.6. Especially since it really is not a new direction. We are, in fact, ready to and capable of forking 2.6 and starting 2.7. But 2.6
is mature, stable, and we are all generally very happy with it. We also do not
have any huge stability-crushing baby-killing changes queued up.
Instead, we have a lot of incremental changes, new features, and such. We have
been able to slip a lot of these into 2.6, in fact -- we merged 4K stacks, huge
scheduler behavior changes, and object-based reverse mapping in post 2.6! A
solid 10MB of patches a month have found their way into 2.6. Yet stability has
not suffered. 2.6 is better off than any previous kernel, and the dynamic duo
of Linus and Andrew is really working. Progress is fast, features are merged,
yet stability remains. The question we asked, then, is why change that?
The answer, as noted and second guessed and complained about, is that there
is no reason to. As long as we can sustain it, we will continue to use Andrew's
2.6-mm
tree as a staging ground for new patches. Linus will continue to work on 2.6.
2.6 will remain a stable kernel, yet from time-to-time see more adventurous
(but still well-tested) patches. This is the stuff that vendors ship, anyhow.
Ultimately, if the size or stability of 2.6-mm ever becomes unwieldy, we can
then fork 2.7. In the meantime, 2.6 can remain stable (in both the code sense
and the user-space API/ABI sense) yet address the too-long-release-cycle
problem.
The only risk is a loss of time on the kernel developer's part. If we
realize that this method is unsustainable in the face of stability, we will
merely end up branching 2.7 later rather than earlier. I have faith that it
will work, however. The combination of Andrew and Linus working together is
gold. Andrew's patch scripts let him manage everything on a per-patch basis,
and he can easily maintain a tree of patches against 2.6 proper. Linus's use of
BitKeeper, on the other hand,
allows him to easily pull from the trees of maintainers. Also, Andrew just
rocks.
All in all, the kernel summit was a lovely opportunity to get together and
see friends I see much too infrequently -- especially Pat, Greg, Zwane, Chris,
Rusty, and Andrew. Some good decisions came out of it, but the most important
is the very clear notion that the kernel is mature in terms of features and
that innovation lies elsewhere. Which is fine with me.
Point of Contention
Perhaps the biggest statement made regarding the change in the way kernel 2.6 would progress was the one which said something to the effect that the 2.6 stable kernel serious would not be the most stable kernel. In other words, there would be no guarantee of stability.
If, on the other hand, they just said that new feature and patches would go in so long as there was a high degree of confidence that it would not cause the stable series kernel to become unstable, there'd be less of a brouhaha than there was.
When will motherboard and video chipset designers attend?
Recently, ASUS has been exposed as being opposed to cooperating with Linux kernel developers. It seems that ASUS is almost intentionally breaking compatibility with Linux.
It sure would be great to see more proactive involvement from motherboard, chipset and video card designers and manufacturers.
I haven't heard this... got a
I haven't heard this... got a link?
ASUS Sucks Story
ASUS Sucks Story
don't worry
As Linux takes off, if Asus continues with their idiotic attitude, Darwin will take care of them: don't want to adapt? fine, then go to the trash can of the evolution.
Graphics acceleration in the kernel
From reading up on the future of X on various sources, I have gathered that the plan ahead sees to involve pushing graphics code into the kernel, perhaps by expanding fb and using it as the basis for X. How would that differ from Microsofts decision to put the graphics driver in the kernel for NT 3.5 and onward? Will the future versions of X be as sensitive to bugs in graphics drivers as Windows is? How will this affect the platform independance of X?
... or not
Xorg is planning on splitting the hardware stuff into a separate lib. Right now they walk over some of the HW management the kernel does and this could easily go bad. So I guess they'll have a special HW lib they use so they can do the required level of setup per platform (*BSDs, Sun ...) and no more. Low level hardware SHOULD be handled from the kernel. Obviously, no one's planning on implementing the X protocol in the kernel :)
Linux is more than x86
What about IBM? Were they invited? Big Linux supporters that they are I would think that they would be eager to attend.
Power hardware
IBM were there and their presentation was the best.
Man, I wish I could go to one...
I'm no kernel hacker, but I am an avid follower. I would've loved the microprocessor panel, especially since I'm on a chip architecture team at a major semiconductor company, even though our chips don't run Linux. (Heck, we don't even have MMUs on most of our DSPs yet.)
--Joe
Linux supports processors without MMU
It's in the 2.6 kernel-series and also there has been the uClinux project (for ages already it seems to me).
See there website: uClInux.org.
I'm aware of uClinux
I'm aware of uClinux. I've even seen Linux run on one of our DSPs. My main point in mentioning the lack of MMUs is that DSPs aren't yet treading anywhere near the waters of workstation and desktop CPUs. And when we do run Linux on a device, it's usually on an ARM.
Of course, the differences between DSPs and CPUs are purposeful. The DSP in your cell phone costs a fraction of what the CPU in your server costs. A miniscule fraction. And that DSP consumes much less power.
No GCC support, no Linux?
Last I checked, gcc didn't support very many DSPs. Maybe this slows Linux entry to DSP devices?
Perhaps.
Perhaps. While there aren't that many GNUisms, there certainly are some. The one I saw once upon a time was compiled with our own compiler.
Covered here
http://lwn.net/Articles/94194/
see ya,
Lennie.