Ubuntu – Why is 12.04 removing the -server kernel flavour

12.04kernelserver

Ubuntu is removing -server flavour, as specified on release notes of 12.04:

As with Beta-1, the Beta-2 kernel no longer carries separate amd64 -server and -generic kernel flavors. These have been merged into a single -generic kernel flavor to help reduce the maintenance burden over the life of this LTS release.

The differences between -generic and -server seems to be related to preempting, the timer interrupt and the i/o scheduler, as stated on: https://help.ubuntu.com/10.10/serverguide/C/preparing-to-install.html#intro-kernel-diffs

I'm asking for technical specs.

  1. So, what happens now?
  2. Will the server edition run the desktop kernel with no performance penalty?
  3. Is this justified somehow?
  4. What happens with that differences?
  5. Can they be changed in userspace?
  6. There are not appllicable as of 12.04?
  7. If the answer is yes, this change will involve performance penalty?

All of them are questions that can be answered. I'm asking for a specific change on a package, not anything else.

Best Answer

As you noticed in the release announcements, the generic and server kernel flavors were merged for the 12.04 release in an effort to reduce the maintenance burden over the life of the LTS. The two kernel flavors actually only differed with regards to 2 major kernel config options: the default I/O scheduler and the preemption model.

This was discussed in detail on the Ubuntu Kernel Team mailing list

As noted in that thread, the default I/O scheduler changed from "deadline" to "cfq". However, anyone wanting to remain with the Deadline I/O scheduler could do so at boot time by setting elevator=deadline.

The preemption model changed from CONFIG_PREEMPT_NONE to CONFIG_PREEMPT_VOLUNTARY. At this time, I unfortunately do not have any performance benchmarks on hand to point you at. Hope this helps some. Thanks.