In association with heise online

17 December 2008, 10:35

Kernel Log: What's coming in 2.6.28 - Part 7: architecture support, memory subsystem and virtualisation

  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

It's not just the audio drivers which have seen important changes during the second half of the development phase for 2.6.28 – there have also been significant developments relating to the various architectures supported by Linux, and in virtualisation technologies and memory management – which is one of the reasons why the Kernel Log is only reporting on these new features in the forthcoming version of Linux now, during the final phase of 2.6.28 development.

After several years of development, the kernel development team has adopted a number of "VM pageout scalability improvements", driven primarily by Rik van Riel, which revamp and optimise parts of the memory subsystem (including 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12). This is intended to reduce the administrative overhead for memory-intensive applications and for systems with large amounts of RAM. Details and background on the changes can be found in an LWN.net article. A number of changes introduced by Nick Piggin will also specifically reduce the CPU load arising from memory management (including 1, 2, 3, 4, 5, 6) – LWN.net also has background information on this.

With the include files for ARM, IA64, Power and Sparc having migrated from include/xyz to arch/xyz/include in Linux 2.6.27, the files for a number of other architectures, including MIPS and x86, are now following suit in 2.6.28. The kernel development team have also overhauled APIC support for x86 systems in various places and extended it to include support for x2apicPDF (including 1, 2, 3, 4). One new feature is support for the XSAVE and XRSTOR commands, supported by newer Intel processors, which save or restore the state of x87 and SSE registers during context switches. Following a redesign, apparently driven by AMD, Microcode Loader, which previously only allowed Intel CPU microcode to be updated, now supports newer AMD processors (e.g. 1, 2, 3). There have also been a number of fundamental changes relating to performance and code debugging, including kernel tracepoints (documentation, examples) and the unified trace buffer. The kernel development team have removed irqbalance – in most distributions the eponymous userspace demon has already been taking care of this for several years.

As in Linux 2.6.27, the development team has once again eliminated numerous calls to the Big Kernel Lock (BKL), used for safeguarding critical code regions during multiprocessor operation, or transferred them from the driver subsystem to the drivers themselves. The kernel coders have also pushed forward with consolidation of the directories and source code files for support for x86-32 and x86-64 systems, which started in Linux 2.6.24. This time around, this ongoing process has included various areas of code relating to IRQ management. This should result in further convergence of the behaviour of the 32 and 64 bit kernels, which previously differed somewhat in the way they dealt with IRQ configuration.

2.6.28 also includes a number of new features for virtualisation solutions. Under the KVM virtualisation solution it is now possible to pass PCI devices through to guests, with the help of Intel's VT-D (e.g. 1, 2, 3). Improvements have also been made which should allow operating systems running as KVM guests to start up around 15 per cent faster. The kernel now offers a Container Freezer for container-based visualisation, which allows a container to be frozen completely (documentation), allowing, for example, a low priority cluster job to be temporarily suspended. The kernel code for operating as a Xen guest system (DomU) now also allows CPU hotplugging. Xen DomU and IOMMU support for Intel's Itanium (IA64) has also been added. The Xen code to run a primary Xen domain (Dom0) has, as expected, not made it into 2.6.28.

Further commits relating to architecture and PCI code in the main development tree leading to Linux 2.6.28:

x86

Non-x86:

PCI:

Further background and information about developments in the Linux kernel and its environment can also be found in previous issues of the kernel log at heise open:

Older Kernel logs can be found in the archives or by using the search function at heise open.

(thl/c't)

(djwm)

Print Version | Send by email | Permalink: http://h-online.com/-739397
 


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit