Kernel Log: Coming in 3.9 (Part 2)
by Thorsten Leemhuis
From now on the help text for shown during configuration will indicate if a kernel feature is experimental. Linux now has the ability to "suspend freeze" and can throttle Intel CPUs with power napping. The KVM hypervisor now supports ARM cores.
As planned, the Linux developers have removed the CONFIG_EXPERIMENTAL kernel configuration option (1, 2). Experimental features could originally only be activated during kernel building if this option was enabled. However, the kernel developers often forgot to remove the CONFIG_EXPERIMENTAL dependency once features had matured. Kernel builders spent many years having to enable the CONFIG_EXPERIMENTAL options, almost as a default, in order to build a kernel for modern hardware components and distributions – the kernel developers have picked up on that and are now dropping this approach. The status of truly experimental features is now only indicated in the help texts that are displayed during configuration and in additions such as "(EXPERIMENTAL)" to the short descriptions; an example can be found in the configuration help text for the Btrfs filesystem.
Linux 3.9 will support a "lightweight suspend" or "suspend freeze" mode that will cause the kernel to send all hardware components into their deepest sleep state. Unlike suspend-to-RAM (ACPI S3), this feature doesn't power down the components so they are quicker to resume operation when they are needed. While the resulting power consumption will be higher than with suspend-to-RAM, it is still designed to be lower than during the normal idle state because the processor can sleep longer and more deeply.
The freeze state tends to be less relevant for PCs and notebooks, discounting certain special cases such as systems that must wake up from suspend particularly quickly, that need to respond to keyboard inputs or network traffic, or don't offer suspend-to-RAM. However, the developers say that the new suspend mode will make a difference with some smartphones and tablets that will consume almost as little power as when they are put into the deeper and less responsive suspend-to-RAM state.
On Monday, 8 April, Linus Torvalds made available the sixth release candidate of Linux 3.9. In his release announcement, Torvalds said that things seem to be on track and that RC7 will most likely be the last release candidate if no unexpected issues arise.
This means that Linux 3.9 will probably arrive around Sunday, 22 April, because Torvalds tends to release new RCs on a weekly basis. However, problems that arose just before the completion of a new version have often delayed the release by a week or two in the past.
The kernel now includes Intel's PowerClamp driver. Similar to a throttling mechanism, the new driver can limit the maximum power consumption of Intel processors; however, rather than tweaking the clock signal, it will temporarily send processors to sleep in a deep C state to achieve this. The aim is not one of general power management, but purely to limit a system's power consumption – for example in order to reduce a processor's heat dissipation or a server's power consumption.
As explained by the developer in the commit comment, a relatively minor process scheduler modification has managed to improve the throughput in a specific Tbench test scenario from about 15 to around 250 MB per second. However, the test was specially designed to reproduce a problem known as the "bouncing cow syndrome" on a system with processor hyper-threading. The effect of this problem is that the kernel will keep reassigning processes to different processor cores whenever there are more processor cores available than there are active processes, making processes "wander" and rendering processor caches rather ineffective.
The integration of the drivers for VMware's VMCI (Virtual Machine Communication Interface) and the VMCI Sockets that are based on it promises to improve the general support for VMware's virtualisation solutions (1 2, 3). VMware products use these technologies to provide communication and data exchanges between hosts and guests – for instance in the case of "shared folders". By adding the drivers to the kernel, the developers allow users to take advantage of some of these features without having to compile the kernel drivers manually first.
The kernel's KVM hypervisor will support the virtualisation features of Cortex A15 processors. This will, for the first time, allow KVM to work under ARM cores. Since Linux 3.7, the kernel's Xen code has supported ARM when using Linux under a developer version of Xen hypervisor 4.3, which is due to be released this summer. Another new addition to the ARM code is support for a "Dummy Virtual Machine Platform" intended for kernels which are designed to run as a KVM or Xen guest.
The kernel's Xen support now includes drivers for hotplugging processors and memory components (1, 2, 3); removing these components at runtime is not possible at present. The VFIO (Virtual Function I/O) feature that was integrated in Linux 3.6 and is supported by Qemu 1.3 now offers experimental basic code for passing through graphics cards from hosts to guests. The Hyper V code supports the improved interrupt model Microsoft introduced with Windows 8.
The developers have updated the code for compressing and decompressing LZO to provide significantly faster processing speeds; according to the commit comment, the feature is now as much as twice as fast on some processors.
Various extensions are designed to provide early kernel support for SGI's Ultraviolet System 3 (UV3) – the third generation of SGI's UV "supercomputing platform" that is currently still in preparation. The kernel now offers NVIDIA Tegra 4 support, and ARM multi-platform kernels can include everything they need in order to run on OMAP platforms such as the BeagleBoard. The list of supported CPU architectures includes two new entries because Linux now runs on Synopsys ARC processors as well as Imagination Meta ATP (Meta 1) and HTP (Meta 2) processor cores.
The x86 code now supports the "Goldfish Android Virtual Platform" – the system platform for a Qemu-based Android emulator developed by Google. Numerous drivers for this platform have also been added to the kernel; however, some of them have landed in the staging area because they don't yet meet the kernel developers' quality requirements.
The Perf tracing tool now includes a test routine for measuring the memory performance of NUMA systems. The kernel developers have also shrunk some tracing data structures to reduce overheads. This modification had been integrated into the kernel before but was soon revoked because it disrupted programs such as Powertop; the developers say that the current series 2 versions no longer struggle with the modification. Userspace programs can now prompt Ftrace to create a snapshot that can then be retrieved for analytical purposes. Further important changes to the kernel's tracing infrastructure are listed in the comment for this area's main Git merge.