Linux 2.6.38 speeds group scheduling, VFS
Mar 15, 2011 — by Eric Brown — from the LinuxDevices Archive — 2 viewsLinus Torvalds announced the release of the 2.6.38 Linux kernel, featuring both an overhaul of the Virtual File System and an “automatic process grouping” patch touted as greatly improving performance. Other Linux 2.6.38 changes include support for AMD Fusion processors, AMD and Nvidia GPUs, and additional Wi-Fi chips, plus Btrfs file-system enhancements and “transparent huge-page” support for speeding database and virtualization applications.
Many kernel releases come and go with relatively few features that would make the average end-user sit up and take notice. Linux 2.6.38 might be different, however, thanks to the addition of a sched: autogroup patch announced by Linux creator Linus Torvalds (pictured) back in November.
Now referred to generally as the "automatic process grouping" patch, the enhancement is said to change "substantially how the process scheduler assigns shares of CPU time to each process," according to the KernelNewbies.org write-up that we use as our primary source here.
The patch automatically creates task groups per TTY in an effort to improve the desktop interactivity under system strain. In addition, it is said to allow the automated per TTY task grouping to be done dynamically on the kernel in real-time.
According to Phoronix testing done on the Mike Galbraith-developed patch in November, the patch can reduce latency by a factor of 10, with noticeable improvements in 1080p video playback. At the time, Torvalds wrote, "It is a huge improvement" and makes group scheduling "a killer feature."
VFS gains faster lookups
The new feature that now enthuses Torvalds is an overhaul of the Virtual File System (VFS), which mediates between the file-system and user space.
"As to the 'big picture', i.e. all the changes since 2.6.37, my personal favorite remains the VFS name lookup changes," writes Torvalds. "They did end up causing some breakage, and Al has made it clear that he wants more cleanups, but on the whole I think it was surprisingly smooth."
Essentially, the VFS dcache (directory cache) and path lookup mechanisms have been reworked to be more scalable, explains KernelNewbies.org. VFS improvements are not only said to make multi-threaded workloads more scalable, but — somewhat surprisingly — also make some single-threaded workloads much faster. This is said to be due to the removal of atomic CPU operations in the code paths.
According to Torvalds' tests, a hot-cache "find . -size" operation on the home directory runs about 35 percent faster with the VFS enhancements. Meanwhile, a single-threaded "git diff" operation on a cached kernel tree is said to run 20 percent faster, and any operation that calls "stat()" are also said to be a lot faster.
The following are some other major additions to Linux 2.6.38:
- Btrfs LZO compression, read-only snapshots — The Btrfs file-system now supports transparent compression using the LZO algorithm, providing a faster alternative to Zlib. Other improvements include support for marking snapshots as read-only, and a "force mounting" feature, said to make the code-base more tolerant to failures.
- Transparent huge pages — This alternative to the Hugetblfs file-system-based API takes advantage of the performance benefits of modern processors' larger virtual-address page caches. The Transparent huge pages code is now used as the default when applicable, but can be configured to be used always or only as requested. The enhancement will be especially noticeable with performance boosts to data-intensive workloads, such as databases or KVM sessions, which frequently access virtual addresses, says KernelNewbies.org.
- B.A.T.M.A.N. Mesh protocol — B.A.T.M.A.N. (Better Approach To Mobile Adhoc Networking) is a routing protocol optimized for decentralized ad hoc networks that don't rely on a preexisting infrastructure. In such networks, each node participates in routing by forwarding data for other nodes dynamically, mesh-style. B.A.T.M.A.N is said to be useful for emergency situations like natural disasters.
- AMD Fusion support — This release adds support for the new AMD Fusion processors. AMD's Fusion devices incorporate one or more instances of the x86 CPU core codenamed "Bobcat," featuring an out-of-order execution engine, plus clock and power gating that can extend battery life. Most of the Fusion chips bring graphic processing on-chip. AMD also offers a variety of Fusion CPUs, such as its G-Series processors, that target embedded devices.
- Dirty memory limits — This feature controls the "dirty" page limits of each memory controller "cgroup."
The new release also offers the usual wide variety of tweaks, additions, and bug fixes, including improvements to the core, the CPU scheduler, memory management, block handling, file-systems, networking, crypto, virtualization, security, and tracing.
Among other changes, The H calls out enhanced DRM/KMS graphics drivers that now support new graphics chips by AMD (ATI) and Nvidia, as well as improved Wi-Fi drivers for Atheros, Broadcom, Intel, Ralink, and Realtek chips. The story also notes the planned availability of Linux 2.6.38 on Fedora 15 and Ubuntu 11.04.
Linux 2.6.38 follows the early January release of the 2.6.37 kernel which offered improved symmetric multiprocessing (SMP) scalability and the addition of many new hardware drivers. Other 2.6.37 highlights included security, power management and memory management enhancements, plus an I/O throttling speed boost and an option to disable the Big Kernel Lock.
Availability
The announcement of Linux kernel 2.6.38 may be found here. More information may found on the KernelNewbies.org summary, as well as an extensive write-up on The H.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.