Tuesday, 30 June 2009

Welcome to Whipper

It seems that we have a new member of the family. Whipper joined us today. Our new car! We have finally mini-sized our car portfolio, two for one. I hope she will enjoy playing with us :)

Karmic Kernel jumps to 2.6.31

So the 2.6.31 merge window has slammed shut, 2.6.31-rc1 has been tagged and released, and now the fun begins. I have just finished the job of rolling the Ubuntu kernel delta forward to the new kernel. So far my testing has been pretty positive for an -rc1 release:
$ cat /proc/version_signature
Ubuntu 2.6.31-1.13-generic
Now all I have to do is get the thing into the archive, expect this kernel shortly on a Karmic install near you. Be warned that KMS is enabled for both Intel and ATI radeon so if you have issues with X you might want to turn it off with i195.modeset=0 or radeon.modeset=0 as appropriate.

Tuesday, 23 June 2009

Meet your Upstream

Our desire to work with our upstream counterparts to bring new goodness to Ubuntu is often tempered by the sheer volume of change we are trying to bring to Ubuntu in a particular cycle. It is easy to focus on that work and forget that upstream is out there, and often better equiped to solve issues or provide advice. I have recently managed, indeed in places been forced by circumstance, to interact with upstream very directly on a couple of projects close to my heart, Kernel Mode Setting (KMS) and VFS union-mount.

At the recent UDS we had the opportunity to mix with a number of upstream developers, some involved in Ubuntu others simply invited for their insight into various subsystems. For me this was particularly relevant as the nominated KMS 'expert' on the Ubuntu kernel team! I was able to spend a number of hours discussing plans with these guys and getting to know them. Out of those discussions came plans to produce bleeding edge kernels containing updated Intel, ATI Radeon, and even Nouveau drivers for those brave enough to give them a spin. This has been hugly beneficial for us, getting testing on these code bases and allowing the userspace guys to get work out the kinks before we release KMS enabled kernels, so that when we do the general experience should be much better much earlier in the cycle. Win all round.

Elsewhere I have been involved in investigations into what we are planning to use as our union mount solution for Karmic. Upstream seems to be leaning towards a VFS based approach, VFS union-mount. We have been trialing these patches putting together test kernels to allow stress testing. Again providing vital early testing feedback to the maintainers and helping to improve the quality and increase confidence in the code. Again win.

Moving my work closer to the developers, often into their lap, is working well for me at least. No I am more involved with them I find them in their turn easier to deal with and generally more friendly. My advice, get out there and meet your upstream find out where their lap is and make yourself comfy.

Monday, 22 June 2009

Karmic Kernel Version

At the Ubuntu Developer Summit we had a session on the likely kernel version for the Ubuntu Karmic release. The decision at the session was that we would be aiming for a v2.6.31 based kernel for Karmic. This was based in large part on release timing, we are expecting this kernel to be released around three weeks before our beta freeze which gives us a fair amount of time to stabalise the kernel before the final release.

What goodness can we expect from the Karmic kernel. We are obviously expecting Intel support for Kernel Mode Setting (KMS) to be stable and enabled. We have some hope of seeing ATI Radeon KMS for at least some cards, indeed the first cut of this support has just been merged. We can expect some good improvements in the Intel graphics drivers as a whole. We also get some new in kernel compression LZMA which might allow smaller kernels and initramfs files saving a bit of space on the CDs. There is a pile of DVB updates merged already . Overall there is nearly 20k changes in already and the merge window is still open. Even staging drivers are getting some love.

Wednesday, 17 June 2009

Series specific mainline builds

I have been having requests to enable Kernel Mode Setting (KMS) in the latest mainline kernel builds so they can be used for testing on Karmic. The problem is that the primary consumer for these mainline builds is for testing on older series, mainly Jaunty, and that does not want KMS to be enabled. While the official kernel for Karmic should be very close to the mainline builds, kept up to date approximately weekly, it certainly is not a crack-of-the-day kernel for the development release.

It seems likely we need to be building these kernels both against the current stable kernel, and against the kernel configurations for the current development release. Likely that means we should be naming all the builds by the release for which they are targeted. More upheaval.

Friday, 12 June 2009

Hamster Wheels

Ever wondered just how much time you are spending on things at work? Constantly forgetting what you are working on, finishing the week with no idea what you contributed? Certainly that is my experience. I have been looking for some tool which would quietly remind me to record what I was doing. I think I might just have found it. Hamster.

The hamster applet sits quietly on my gnome menubar, showing what I am working on and how long I have been at it. A quick click and I can change activity. Once you have your tasks recorded you can then categorise them. For example I am interested in how much of my time is spent on Development tasks and how much on Maintenance. Needless to say it produces pretty bar charts for review. Overall an interesting app.

Thursday, 11 June 2009

LZMA Compression for the Linux Kernel

With the release of the 2.6.30 kernel we now have native support for Lempel-Ziv-Markov chain algorithm (LZMA) compression. This offers something like a 30% improvement in compressed size over GZIP compression (used for kernel image and initramfs compression). The downside is that decompressing LZMA data uses around twice as much CPU as compared to GZIP. Also compression is much slower than GZIP.

What does this mean for the kernel?
Well for one it means it is not in the least bit obvious whether switching compression of the kernel and initramfs to this new compression format is going to be beneficial on average. Yes they would be smaller, but they would also take more time to extract especially on slow hardware. The key metric is the overall time taken to load and extract this pair and that is not easy to measure. Obviously we want to enable support for this new compression format, but making a change to that format will take more research and quantative comparisons.

ATI Radeon and KMS

We are expecting to see KMS support for at least some ATI cards by the time the Karmic Koala releases. As part of that we have been playing with previews of ATI KMS support. As a kernel junky I have pulled the updates for ATI Radeon and applied them to the latest Karmic kernel and built some test kernels. Initial touch testing by the X-swat team seems to show that its not in that bad a shape.

With a whole kernel release to stabalise this stuff I am pretty hopeful that we should have something stable for Karmic. Of course that does rely on the support being merged in the v2.6.31 merge window, we shall know in the next few weeks.

If you are keen to try out ATI Radeon KMS you can find kernels with this enabled in my KMS PPA.

Friday, 5 June 2009

Kernel Mode Setting

There has been much hype over Kernel Mode Setting (KMS) support in the Linux Kernel. KMS is claimed to improve the boot experience, speed up boot and suspend/resume, make suspend/resume more reliable, improve crash reporting, and make you breakfast in bed. I was therefore somewhat sceptical that it would be so world changing.

During the recent Ubuntu Developer Summit I had the opportunity to be involved in planning for the kernel side of KMS and had the chance to see some machines setup with KMS enabled. I can only say I was impressed with the improvements I have seen. Ok it does not yet seem to make my breakfast, but the rest of the claims seem more than justified. Even without updating the splash screen support to use Plymouth we were seeing a vastly less blinky boot sequence and resume from suspend which seemed almost instant, the screensaver lock being visible in the time it took me to open the lid.

There is a lot of work still to do of course. This is all very fragile only supporting Intel hardware as I write. We do hope to have at least ATI support before Karmic Koala is released (though that depends on how quickly radeon support gets merged). Also getting the right bits together is non-trivial. You need an appropriate kernel, updated X and mesa, some manual configuration etc. But we are planning to put together a PPA with the required bits and document things better. Watch out for further announcements.

Tuesday, 2 June 2009

Kernel Crack of the Day

Some time ago the Ubuntu kernel team started generating installable mainline kernel builds. These are kernels built directly from Linus' tree with no Ubuntu modifications. These are generated from each tagged release which includes all full kernel releases (2.6.x, 2.6.x.y) as well as the release candidates (2.6.x-rcN). These kernels have proven very popular both with people wanting support for the latest hardware and as a basis for finding the source of bugs.

As an experiment we are expanding the scope of the mainline builds to include builds of the daily snapshots of the tip of Linus' tree. These are generated every 24 hours where updates are present and are published in the mainline builds archive as normal.

For more information on what mainline builds are, why you might want them, and how to obtain and install them can be found on the Ubuntu WIKI on the mainline kernel builds page. Enjoy.

Monday, 1 June 2009

Ubuntu Developer Summit (Barcelona May 2009)

My second Ubuntu Developer Summit (UDS) is over. I think I need a week sleeping to let the sheer volume of information to clear from my mind before I can think about anything else. This UDS seemed bigger than the previous one. More tracks, more talks, more information, and more overload. But that has to be seen as a positive we are trying to tackle more and achieve more. At least this time I knew what to expect and was able sift the deluge of information and contribute to the event. It was great to see so many dedicated Ubuntu contributors and fans all in one place, to meet those people who I have been working with regularly.

As a member of the Ubuntu kernel team my focus was on the kernel track, particularly on the subjects I am focused on for this cycle. Though this time round the team did try and make sure we were able to escape our own sessions and get representatives out to other tracks so we could find out what the rest of the distro is planning to do and how that might affect us. They are after all our customers, consuming our kernels.

A number of topics caught my eye during the week. There was the drive to improve boot speed, some pretty aggressive boot speed targets are being banded around. Also plans to shift to grub2 as the default boot loaders bringing internationalisation and perhaps allowing lilo to be retired. The introduction of Kernel Mode Setting to improve boot experience. Plus cloud computing and how that will change both what is possible and our own workflows. All in all a week well spent.


I am an Ubuntu Kernel Developer employed by Canonical to work on the Linux kernel full time. I work both with upstreams to test, fix and intregrate new features, as well as with our user community to find and fix issues they are seeing. We as a team strive to make Ubuntu as good a disto as it can be, as feature rich and reliable as possible. I enjoy my work!