In association with heise online

06 June 2009, 07:47

Kernel Log: What's coming in 2.6.30 - Architecture and infrastructure

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

Kernel Log logo

by Thorsten Leemhuis

Linux 2.6.30 can be compressed using Bzip2 and LZMA, includes security framework Tomoyo and should boot faster. Tasmanian devil Tuz, who stood in for Tux as Linux mascot in 2.6.29, has been relieved of his duties.

Linus Torvalds recently released the eighth and probably last pre-release version of Linux 2.6.30 – the sage of Linux has announced that Linux 2.6.30 will be released shortly, (probably this weekend). Not that he always sticks religiously to such pronouncements; nonetheless it is unlikely to be more than a few days before kernel version 2.6.30 hits the shelves. Kernel Log thus concludes the "What's coming in 2.6.30" series with this overview of architecture support and infrastructure-related changes.

Compacted

In Linux 2.6.30, the developers have removed support for the "zImage" build target on x86 systems, which has long since ceased to be used. One new feature is a kernel library for decompressing Gzip, Bzip and Lzma. The kernel accesses these in order to unpack parts of the kernel image or Initramfs during the boot process. Previously only Gzip could be used for compression. A kernel image packed with Bzip2 should be around 10 per cent, or with Lzma a whole 33 per cent, smaller.

There have been a number of changes to the CFS process scheduler to simplify the code, accelerate processing and optimise CFS for real time environments. For the latter in particular, the option of having interrupt handlers with separate threads, for which some of the groundwork has now been done, should prove of some interest (1, 2, 3). There have also been a number of enhancements in the code for locking. A somewhat different approach when attempting to get a lock should deliver a slight performance boost – something in which the Btrfs developer team in particular have shown an interest.

Kernel Log – What's coming in 2.6.30

Further articles in the "What's coming in 2.6.30" Kernel Log series, which summarises major developments in the forthcoming kernel version:

1. Network: New Wi-Fi drivers and other network novelties

2. File systems: New and revamped file systems

3. Storage: RAID improvements, optimised CFQ Scheduler, SAS drivers

4. Drivers: New drivers for audio, video, USB hardware, netbooks and notebooks

The article 'Steady growth – What's new in Linux 2.6.29' gives an overview of new features in the main development line of the current kernel version.

Security

Thanks to major changes to cryptd, the cryptographic subsystem now runs better using more threads. On the developer's test Core 2 Duo E6400 system, data throughput on a volume encrypted using the device-mapper increased by 19 percent. Also new is support for Intel's AES-NIPDF (Advanced Encryption Standard) and the crypt4xx driver for AMCC PPC4xx series cryptographic accelerators.

SELinux and Smack are joined by Tomoyo, a further security framework which offers MAC (Mandatory Access Control). The Tomoyo developers have provided a helpful table on the Tomoyo wiki which explains how, from their point of view, it differs from the above two frameworks and AppArmor. A significant practical difference is that SELinux and Smack work with extended attributes, whilst Tomoyo and AppArmor work with paths and file names. This was and is not entirely uncontroversial, but is good enough for some developers – details are given in the article 'Tomoyo Linux and pathname-based security' on LWN.net.

Another new feature is the integrity management architecture (IMA) (e. g. 1, 2, 3, 4). Using a Trusted Platform Module (TPM), IMA is able to ensure that programs are not changed either accidently or with nefarious intent – details on the IBM-developed technology can be found in the LWN.net articles 'System integrity in Linux' and 'Integrity management in the kernel'.

Power management and PCI

There have been lots of big changes in the PCI subsystem; these are detailed in the PCI subsystem administrator's Git pull requests. He has highlighted items such as improved support for hotplugging and MSI (message-signalled interrupts). The PCI subsystem now also offers everything required for single root I/O virtualisation (SR-IOV). This allows PCI devices which support SR-IOV to be divided into multiple virtual devices which can be assigned to virtualised guest systems.

Following major changes to the code for switching into and out of system-wide hibernation (suspend and resume) in 2.6.29, there have been further adjustments aimed at rounding off some of the new design's rough edges. In particular, the developers have revamped interrupt handling in order to make suspend more robust.

Fast boot, Tuz, maintainers

Numerous kernel changes aimed at improving boot times were introduced in Linux 2.6.28 and 2.6.29 (fastboot patches). Due to a number of problems however, some of the more promising enhancements were only used when explicitly activated on start-up by setting the appropriate kernel parameters. In 2.6.30 this code will finally be used in anger. The extent to which parallel initialisation of certain kernel subsystems during booting will deliver speed gains is highly dependent on a system's hardware components and how they are configured.

Temporary mascot Tuz has now served its honorary term and is making way for Linux' long-term penguin mascot Tux.

The maintainers file has seen major restructuring. Using the information added to this file, a new script is now able to list which developers are responsible for a specific area or file within the kernel.

Architecture code and virtualisation

Linux 2.6.30 has also seen major work on the structure of the code for x86 systems, which now no longer support 'sub-architectures' 1, 2. Following on from this, the developers have removed support for 32-bit Voyager systems – anyway since 2.6.27 the code has been uncompilable. Alternative code for supporting this specific x86 architecture may, however, be in the pipeline. Also new is support for the Microblaze architecture. The code for the Xtensa architecture is also now able to deal with Stretch S6000 chips (1, 2).

Things were relatively quiet on the virtualisation front this time out. One of the bigger changes was support for nested virtualisation – running a guest system within a guest system – on more recent AMD CPUs. Debugging options in KVM have also been enhanced. As in pretty much every new version, the KVM development team claim to have improved both performance and emulation in general ("better performance and improved emulation accuracy"). There have been changes in the Xen DomU code. The Dom0 code is still left out in the cold however – as things stand at present it looks unlikely that it will be merged in the near future, with Torvalds and a number of other key kernel developers having recently strongly criticised the code put forward for merging.

On close examination

Other changes will in future allow more information to be obtained on the status of modern CPUs – useful for debugging and performance optimisation purposes (1, 2). The developers have also merged the infrastructure for debugging DMA transfers (1, documentation).

Tracing framework Ftrace now works on IA64 CPUs (Itanium). There are new trace plugins in the form of kmemtrace (memory), blktrace (block devices such as storage media) and a workqueue tracer. A number of other tracers and even Ftrace have been extended and enhanced. Details can be found in the Git pull requests for the tracing infrastructure and the list of further commits at the end of this article.

Latecomers and minor gems

There have been further changes in some of the areas on which Kernel Log has already reported as part of the "What's coming in 2.6.30" series. Despite the stabilisation phase already being at a fairly advanced stage, Torvalds has nonetheless merged a new driver by the name of fnic into the SCSI subsystem. It is suitable for Cisco's PCI Express FCoE (fibre channel over Ethernet) HBA (host bus adapter). 2.6.30 has already seen one change for ancient, dusty hardware in the form of an ISA sound driver – now it's the turn of the 3c509 driver, which addresses some 3com network chips found in EISA systems. Other late arrivals can be found in the list at the end of this article.

The changes described are just some of the more significant changes made to architecture code and infrastructure by kernel hackers. Numerous further changes can be found from the list of commit headers from the main development tree below. The links take you directly to the changes in the main development tree web interface, where commit comments and the patches themselves provide extensive additional information on these perhaps less major, but in no way insignificant, changes.

Architechure-Code

x86 (x86-32, x86-64)

ARM

Power

Various

Virtualization

Infrastructure

bzip2/lzma

Crypto

Fastboot

MM

PCI and ACPI

Power management

Scheduler

Security

Tomoyo

Tracing

Various

Late arrivals

File systems

Documentation

Network

Storage

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 The H Open Source:

Older Kernel Logs can be found in the archives or by using the search function at The H Open Source.

(trk)

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


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit