In association with heise online

12 May 2010, 18:08

Kernel Log: Coming in 2.6.34 (Part 4) - Architecture and Virtualisation

Kernel Log Logo by Thorsten Leemhuis

Faster suspend and resume, better utilisation of power saving mechanisms for I/O devices and a range of performance enhancements are just some of the kernel infrastructure changes in Linux 2.6.34.

On Sunday, Linus Torvalds released the seventh pre-release version of Linux 2.6.34. The release announcement indicates that he expects it to be the last release candidate, suggesting that the next kernel version from the main development tree is likely to see the light of day late this or early next week. It is not, however, uncommon for Torvalds to slip out another version despite pronouncements to the contrary, pushing back the final kernel release by several days.

Kernel Log is taking the opportunity to continue its reporting on the changes in Linux 2.6.34. This fourth and penultimate article in the "Coming in 2.6.34" series deals with changes relating to code for the various processor architectures, tracing, virtualisation and other facets of kernel infrastructure. Parts one, two and three of this series were devoted to the major changes in the network support, file system and graphics hardware fields.

PCI and power management

Following Torvald's rejection of asynchronous suspend and resume patches in 2.6.33, he has now merged a revised version into 2.6.34 without fuss. These patches cause the kernel to suspend certain system components in parallel and wake them simultaneously. This should reduce sleep and wake times when using ACPI S3 / suspend-to-ram and hibernate / suspend-to-disk modes. More information on this can be found in the article "Redesigning asynchronous suspend/resume".

The kernel has previously offered only rudimentary support for utilising power saving technologies on I/O devices at runtime. In Linux 2.6.34 this has been significantly revamped and expanded (e. g. 1, 2, 3). The code which performs this task, which has long been in the USB subsystem, now makes use of the new generic functions. The new energy saving functions are, however, deactivated by default.

In addition, the PCI subsystem also sees changes affecting resource allocation. In his main git pull request subsystem maintainer Jesse Barnes was optimistic that this would not lead to any problems.

Memory management, virtualisation and tracing

A change developed primarily by Yinghai Lu means that the kernel no longer relies on the 'bootmem allocator' previously used when booting on x86 systems, with the result that x86 kernels can now start with three, rather than four, memory allocation mechanisms. There have also been a number of other enhancements to memory management aimed at improving performance and scalability (e.g. 1, 2). Some of these changes gave rise to problems elsewhere, tracing their causes required several days of painstaking work by Torvalds and other developers, delaying the release of RC3 by a week. More detailed information and an in-depth look at the memory subsystem can be found in the article "The case of the overly anonymous anon_vma".

The vmware_balloon driver was merged into the kernel well after the merge window closed. It allows the amount of memory VMware makes available to guest systems to be adjusted at runtime. Vhost-Net and Macvtap, technologies for increasing network performance in virtualisation solutions such as KVM and Lguest, are new in 2.6.34 and have already been dealt with in the first part of the "Coming in 2.6.34" series. The first parts of a Hyper-V emulator have also been added to the KVM code.

As in previous kernel versions, 2.6.34 sees dozens of enhancements in the tracing code and performance events which can be used for analysing kernel processes at runtime. 'Jump optimisation' (1, 2, 3, documentation), for example, should, according to Ingo Molnar's git pull request, significantly accelerate kprobes code. He lists other important tracing-related changes in a second merger request for a collection of patches he has put together. The perf code now includes a Python scripting engine (1, documentation) – background information can be found in the article "Scripting support for perf". The perf code also now supports recently launched processors containing Westmere cores, including Intel's dual-core i3 and i5 core series processors.

In brief

  • Kernel hackers have significantly extended support for the recently released Moorestown platform, Intel's attempt to establish a foothold in areas dominated by ARM processors, such as the smartphone and tablet markets.
  • A change in Lkdtm now allows kernel crashes to be provoked for purposes such as simulating behaviour during a system crash.
  • The relatively new Devtmpfs is no longer considered experimental.
  • Kernel developers have removed the x86-32 emulation for Itanium processors, as, despite not having worked since May 2008, no complaints have been received.
  • A change which fixes the recently disclosed performance problem on AMD's recently introduced Turbo Core processors has also been merged. Full support for the technology, which increases processor speed at low utilisations, is expected to find its way into 2.6.35.

Minor gems

Many further minor, but by no means insignificant, changes can be found in the list below, which contains the commit headers referring to the respective change. Like many of the references in the text above, the links point to the relevant commit in the web front end of the Git branch for the kernel sources maintained by Linus Torvalds at The commit comments and the patches themselves provide further extensive information on the respective changes.





Various other architectures


Memory Management


Power Management





For other articles on 2.6.34 and links to the rest of the "Coming in 2.6.34" series, see The H's Kernel Log - 2.6.34 Tracking page. New editions of Kernel Logs are also mentioned on and Twitter via "@kernellog2". The Kernel Log author also posts updates about various topics on and Twitter via "@kernellogauthor".


Print Version | Permalink:
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit