Kernel Log: Coming in 3.1 (Part 3) - Architecture, infrastructure, virtualisation
by Thorsten Leemhuis
Linux 3.1 contains all the necessary components for passing through PCI devices to Xen guests; KVM offers rudimentary nested virtualisation support for Intel CPUs. Supported CPU platforms now include the OpenRISC open source processor architecture.
Late last Monday night, Linus Torvalds marked the sixth release candidate of Linux 3.1 on GitHub; however, due to emailing problems, the announcement of RC6 only reached the LKML on Wednesday. In his announcement, Torvalds said that the RC only contains just over one hundred commits, and that things have been fairly quiet. This relative quiet is probably a side effect of the break-in at kernel.org and the resulting maintenance work, which has meant that the kernel developers have had to adapt their work methods.
The Kernel Log will take the Linux 3.1 development progress as an opportunity to continue its "Coming in 3.1" mini series with a discussion of the advancements in the kernel's architecture, infrastructure and virtualisation areas. Part 1 of the mini series provided an overview of the changes in terms of network drivers and infrastructure, while part 2 discussed the kernel's storage code and filesystems. The series will be concluded with a forthcoming article on drivers.
While Linux 3.0 provided the last essential components to enable Dom0 operation for the Xen hypervisor, version 3.1 will offer a range of optional functions. For example, the kernel can now be given control of the VGA text mode by the Xen hypervisor, allowing the Dom0 kernel to output to screen. Due to the integration of the Xen PCI backend, the kernel can now pass through PCI/PCIe devices to Xen guests (for example 1, 2); also new is the SR-IOV support for paravirtualised guests. The Xen balloon driver's new hotplugging support offers new ways to adjust the memory of an Xen guest at runtime; Xen's extended transcendent memory support has given the kernel "self-ballooning" and "frontswap self-shrinking" capabilities (for example 1, 2).
Consequences of the intrusion
Following the intrusion at kernel.org, the administrators have been doing maintenance; as a consequence, the Git repository with the kernel sources and its web front end, which can usually be found there, have been unavailable. Many of the links in this article therefore point to Github, where Linus Torvalds is temporarily developing Linux until kernel.org is back in operation.
KVM now offers the basic functionality for starting guest systems from within another guest system (nested virtualisation) on Intel processors (for example 1, 2). KVM guests can now use the SMEP (Supervisory Mode Execute Protection) CPU function, which is one of the new features of Intel's forthcoming Ivy Bridge generation of processors. Classified as experimental and disabled by default, the zero-copy RX support for Macvtap and Vhost-net is designed to improve network performance in virtualised environments, as it reduces the administrative overhead when data is exchanged or forwarded through a network. The developers have modified the KVM timer code to implement "steal time support" (for example 1, 2); also new is the code for using KVM in hypervisor mode on 64-bit Book-3S CPUs such as the POWER7.
Another item submitted for integration into the tools directory was the "Native KVM Tool", which was first presented last spring and, similar to Qemu-KVM, emulates certain hardware components for guest systems. After several kernel developers questioned the proposed integration, Torvalds decided not to integrate it during this merge window. Following the discussion, one of the developers who had criticised the tool released a script that, similar to the Native KVM Tool, provides the functionality to quickly test self-built kernels.