In association with heise online

Architecture code

Intel developer Venkatesh Pallipadi has prepared various red-black tree (rbtree) improvements to optimise the kernel's PAT code (Page Attribute Table). These improvements were briefly discussed at and later reworked by Peter Zijlstra (1, 2, 3, 4). A patch for Intel's microcode driver is to reduce the time required to load microcode updates from 80 seconds to 1 or 2 seconds on a test system with 1024 processor cores. Previously called cpuhog, the cpu_stop function temporarily allows the kernel to claim processor cores, which simplifies the kernel code in various places and speeds up certain internal kernel tasks – further details can be found in an article at CTR support in the aesni-intel driver is to reduce latency times when a system makes use of the AES-NI support offered by recent Intel processors.

Linux 2.6.35 also fully supports a feature called Turbo Core that allows some of the six-core processors AMD introduced several weeks ago to increase the frequency of individual cores when at least three of the cores are sleeping. Procfs enables users to detect the existence of Turbo Core CPUs; the frequency enhancement feature can be disabled via Sysfs if required. These measures will soon conclude the saga about Turbo Core performance issues, after stable kernel versions, and 2.6.34 already introduced corrections which at least allowed AMD's six-core processors to reach nominal speeds.

Virtualisation, tracing

The most important KVM virtualisation advancements are mentioned in Avi Kivity's Git-Pull request: A PPC64 port, improvements to the timer code, lots of work to the emulator code, and features that allow KVM guest systems to be analysed from the host via "perf". The developers made tons of further changes to the tracing and performance monitoring infrastructures to add support, for instance, for the monitoring functions offered in older Pentium 4 CPUs (1, 2) and for Intel's "Precise Event Based Sampling" (PEBS), which allows information about individual memory sectors to be retrieved.

New text-based user interfaces for "perf report" (for instance 1, 2) and "perf annotate" (for instance 1, 2, 3, 4) are designed to simplify analysing the collected data.

The new ramoops driver, which saves information about errors in non-volatile memory, can help developers with their error analysis. After several attempts, the Kdb kernel debugger has now been added to the kernel (1, 2, documentation). Its code is based on version 4.4 of SGI's Kdb, and its functionality is slightly different from that of the kgdb debugging feature integrated in the kernel quite a while ago. Kgdb requires a second system and its code was merged with the Kdb code in various places. Further details about Kdb are to be found in an article on, in the documentation provided by the developer at, and in the two Git-Pull requests (1, 2); in the first request it says the developer still hopes to integrate the KMS-Kdb patches into 2.6.35, which didn't happen.

Next: Minor gems

Print Version | Permalink:
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit