In association with heise online

27 November 2009, 17:12

Kernel Log: Coming in 2.6.32 (Part 6): Infrastructure

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

by Thorsten Leemhuis

Devtmpfs, aka 'devfs 2.0' to its detractors, should allow the Linux kernel to start faster and run without udev. Support has been added for ACPI 4.0 and there are two new make targets which generate kernel configurations attuned to the running system. Changes to the power management subsystem increase data throughput and allow better use of runtime power saving features on modern I/O devices.

On releasing Linux 2.6.32-rc8, Linus Torvalds hinted that kernel version 2.6.32 could be released by the end of this month. The Kernel Log therefore brings its reporting on the changes in kernel 2.6.32 to an end, dedicating the sixth article in the 'What's coming in 2.6.32' series to changes in and around the kernel infrastructure. The first four articles in the series dealt with changes in the networking subsystem, in the graphics hardware, in storage hardware and file systems and in other drivers, while the fifth article looked at architecture code, memory management, virtualisation and tracing .

ACPI, PCI and PM

Various patches add support for ACPI 4.0 to the Linux kernel. They are accompanied by a driver for ACPI 4.0-compliant power meters and an ACPI Processor Aggregator Device Driver. The latter makes individual CPUs idle when instructed to do so via ACPI 4.0, in order to temporarily reduce power consumption in the event, for example, of an electrical emergency or impending overheating. This allows a system to continuing running, albeit with reduced performance, rather than switching itself off. Its merger followed a long discussion in which Torvalds spoke out in favour of the driver – details can be found in an article on LWN.net.

VGA arbitration patches have now been integrated into the PCI subsystem. On systems with multiple graphics cards running X server version 1.7 or later, this code ensures that each graphics card receives the correct X server VGA command, offering a big increase in flexibility when setting up multi-seat environments. Details can be found in the kernel documentation and in two old blog entries by Dave Airlie and Tiago Vignatti. PCI subsystem maintainer Jesse Barnes lists several further major changes within the PCI subsystem in his main git pull request. These include enhancements for PCI ASPM (Active State Power Management) and improved reset options for PCIe devices – the changes implementing these enhancements are listed at the end of this article.

Several major changes to the power management code create the basis for making better use of the runtime power saving features on modern I/O devices – details can be found in this LWN.net article. An enhancement to the Cpuidle framework, also explained on LWN.net, should increase I/O throughput on larger servers in particular – in some cases significantly. Further changes to the power management code are listed in Rafael J. Wysocki's main git pull request.

Scheduling and security

There have been numerous enhancements to the kernel scheduler, which is responsible for allocating processor time to different applications (1, 2). After a fork, the kernel does not, now, execute the child process first. There is also the new SCHED_RESET_ON_FORK flag – if set, the kernel will reset the priority of child processes to the default – background information on these two changes can be found in two LWN.net articles (1, 2).

Changes to the process scheduler also eliminate two weaknesses found in speed comparisons made using Con Kolivas' recently published and independently developed BFS ("Brain Fuck Scheduler"). One of these problems resulted in x264 encoding being significantly slowed on multi-core systems. One of the x264 developers explains the background to this problem on a blog and also takes the opportunity to make some recommendations on improving collaboration between developers.

Sysfs now supports security labels, allowing security frameworks such as SELinux to monitor access to the virtual file system. Crypto subsystem maintainer Herbert Xu has summarised some of the more significant cryptography-related changes in his main git pull request for 2.6.32.

A second shot at devfs

Following lengthy discussions over the summer, devtmpfs, aka 'devfs 2.0' to its detractors, has now made it into the kernel. It allows the kernel, on booting, to itself create and mount a RAMdisk populated with a device file system. This can speed up boot time and makes it possible to boot without using an initrd populated with udev or similar.

These, however, are just some of the benefits of devtmpfs, which has come under heavy fire from some quarters. Torvalds, however, liked the concept, in particular the fact that the kernel is now able to carry out the whole boot process autonomously. How it works is explained in an old LWN.net article. Directly after it was merged, it was realised that udev would still be required after booting, in order (among other things) to set privileges for /dev/null and /dev/zero. A hastily added patch now allows the kernel to take care of this too.

Suitably configured

Kernel testers can now use the new 'localmodconfig' make target to, relatively simply, create a kernel configuration attuned to the distribution and hardware being used, and which does not compile any unneeded modules. This uses the configuration file for the currently running kernel and deactivates all modules which are not loaded in the kernel when it is run.

As a consequence, drivers for hardware which is not connected when the make is called, such as USB devices, may be omitted. For testers, however, it has the potential to save a bunch of time when generating a kernel, as explained in a git pull request by Steven Rostedt, the kernel hacker responsible for this change. Rostedt also explains how it works and describes the 'localyesconfig' make target, which generates a kernel configuration into which all modules loaded when it is called are compiled.

Minor Gems

Many further minor, but by no means insignificant, changes can be found in the list below. Like many of the references in the text above, the links point to the relevant commits in the web front end of the Git branch at kernel.org that Linus Torvalds uses for maintaining the kernel sources. There, the commit comments and the patches themselves provide extensive further information on the respective changes.

ACPI

Crypto

LVM, SELinux, ..,

PCI

PM

Process Scheduler

Various other changes

Latecomers

The previous five parts of the Kernel Log mini series have already given a detailed overview of the many changes in of the Linux kernel. All of the major enhancements have already been mentioned there, as they entered the main development branch during the first phase of the development cycle. But some small, usually not quite as important changes that fall in the "minor gems" section entered the kernel later – for completeness, we have included these changes in the following list.

Graphics

Network

For other articles on 2.6.32 and links to the rest of the "Coming in 2.6.32 " series, see The H's Kernel Log - 2.6.32 Tracking page. (thl /c't).

(crve)

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


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit