by Thorsten Leemhuis
Together with a new version of X Server, Linux 3.5 will offer improved hybrid graphics support. The new kernel supports “FireWire Target Disk Mode”, which is a familiar Mac feature, and performance monitoring components can now keep an eye on userspace software.
After two months of development, Linus Torvalds and his fellow developers have completed and now released Linux 3.5. The Prime infrastructure and Uprobes are only two of several new features that will make a difference to home PC users as well as professional system administrators.
Various graphics drivers in the kernel now support the Prime framework. The framework is designed to improve the support of graphics hardware that can be added at runtime – such as DisplayLink monitors and the hybrid graphics technologies that can mainly be found in notebook computers. The X Server’s Prime support, which was recently integrated as a preview into X Server 1.13, is said to be based on the new kernel features; version 1.13 of X Server is due to be released in September. As a result, various distributions that are due out in the autumn will probably offer improved support for USB monitors and hybrid graphics solutions such as NVIDIA’s Optimus; the developers have further hybrid graphics improvements on their to-do list.
Changes in the way the Radeon graphics driver stores data in video memory mean that the driver in Linux 3.5 will now get better performance out of some R600 to R900 (Radeon HD 2400 to 7670) GPUs. Kernel developers have also significantly improved support for audio transport via HDMI on recent Radeon GPUs, so that most Northern Islands GPUs (many Radeon 6000 series models) are now supported.
The nouveau driver in 3.5 can utilise hardware acceleration on Kepler chips, which are to be found on many GeForce models in the latest 600 series. For the time being, this requires a firmware file which has to be extracted from the proprietary NVIDIA driver.
After years of development, dozens of aborted attempts and some major restructuring, the code for uprobes (userspace probes) has finally been merged into the kernel (1, 2, 3, 4, 5 and others). This enables the kernel to insert breakpoints into code for userspace software at runtime, though currently it can only be used via the kernel’s perf events subsystem. It enables tracing software that makes use of it – such as kernel component perf and version 1.8 of systemtap – to add tracepoints to userspace software, and thus monitor the runtime behaviour of the kernel and programs at the same time.
Until now, perf could only observe processes within the kernel, while systemtap needed utrace, which never found its way into the official kernel, to monitor userspace software. Uprobes is itself derived from utrace, though they parted ways long ago. Instructions for using uprobes in practice can be found in the uprobes merge commit. Background information can be found in an article on LWN.net, which explains that the kernel, despite the new analytical options, doesn’t come close to offering the functionality required to create a tracing solution comparable to Solaris’s dtrace.