Launchpad Entry: kernel-karmic-kernel-decision-session
This specification describes the thought process that goes into how we choose a kernel version.
Every release cycle we must choose a kernel that is as recent as possible while still remaining stable. Typically the decision is simply the most recently released kernel prior to the Ubuntu release. Once in the last several cycles we chose an -rc7 release from Linus, but upgraded to the release version soon thereafter.
The only mitigating factor that I can think of for this release cycle is the requirements of the ARM flavours. Otherwise, were x86 the only consideration, I think 2.6.31 will be released in time for the Karmic cycle. Improvements in 2.6.31 that will have a direct impact include:
- Maturation of ext4
- Continued improvements in wireless subsystem and device support
- Maturation of KMS for Intel and ATI.
- 2nd generation parallel (or asynchronous) kernel boot.
- Probable inclusion of unionfs
ARM questions to be answered are:
- What ARM instruction set will we use (v5, v6 or v7) ?
- If v7, then its likely we'll only support Freescale for now and other vendors that signup in the future.
- If we choose to synchronise with Android, what version are they targeting?
- Does it even make sense to try to standardise ARM and x86 on the same kernel?
The consensus was that v2.6.31 was the appropriate target release. With ext4 as a default filesystem.
The kernel of choice will be v2.6.31. This fits well dates wise, a typical kernel release cycle being 3 months which would have it release at the start of September. This is several weeks before Beta Freeze and over a month before final kernel freeze. There is still some risk of needing to push the final kernel release via SRU should it not hit in time.
There was general agreement that this was a good release for upcoming features including KMS which will be more mature there, and should include some ATI support. There was hope that vfs union-mount would also hit this release.
There was discussion of the default filesystem. It was concluded that ext4 would be stable enough to use as a default, and this would give advantages for those on SSDs particularly. It is not proposed to upgrade people automatically.
There was some discussions on whether there was any chance of a sync with any upcoming Android base release. There seems no chance of any sync there as their current 'next' kernel is expected to be v2.6.29 and we are already past that. Discussions hinted at a separate tree for Andriod, but discussions deferred to the Android session.
The future of LRM was discussed. For the distro this is already gone with the remaining consituent parts pushed into DKMS packages. Some discussion around the need to keep this machinary for OEM use on slower/smaller/compiler free systems occured. This was not ruled out for their use.
Since mobile/platform team decided to go with ARMv6+VFP instruction set for bootstrapping the ARM arch in Karmic, we will be left with only the Freescale imx51 flavour from the current set of armel flavours. It is expected that we will have other SoCs to enable though on availability of HW.
Android seems to be working towards a 2.6.29-based kernel for their next release. This would be brought in as a separate source tree (not merged into the Ubuntu kernel, since we will be at 2.6.31). OEM kernel team will look into this.