Five Years Of Linux Kernel Benchmarks: 2.6.12 Through 2.6.37

Written by Michael Larabel in Software on 3 November 2010 at 10:24 AM EDT. Page 2 of 8. 74 Comments.

For some perspective before sharing the results, here is a brief recap of some of the advancements in each major Linux kernel release over the past five years, which is condensed from the information found at KernelNewbies.org.

Linux 2.6.12 [17 June 2005]: The Linux 2.6.12 kernel introduced page-out throttling, multi-level security for SELinux, address space randomization, cpusets, I/O barrier support for serial ATA devices, IPv6 support no longer being marked experimental, hot-pluggable parallel ports, and device mapper multi-path support.

Linux 2.6.13 [29 August 2005]: Noteworthy features for the Linux 2.6.13 kernel included execute-in-place support, i386 CPU hot-plugging support, voluntary preemption, inotify, an improved CFQ IO scheduler, DRM support for VIA Unichrome chipsets, ACL support for NFSv3, kexec and kdump integration, and a new driver for trusted computing / TPM.

Linux 2.6.14 [27 October 2005]: Introduced in the Linux 2.6.14 kernel was a NUMA-aware SLAB allocator, SELinux memory improvements, spin-lock consolidation, detection support for soft-lockups, FUSE (File-system in User-Space) integration, and initial ATI Radeon R300 3D support.

Linux 2.6.15 [3 January 2006]: The Linux 2.6.15 kernel presented many VFS changes, page-table scalability improvements, demand faulting for huge pages, cooperating processes for the anticipatory I/O scheduler, NTFS file-system write support, and ATA pass-thru with the libata driver. For some perspective, this is the kernel that was used by Fedora Core 5, Gentoo 2006.0, Ubuntu 6.06 LTS, and others.

Linux 2.6.16 [20 March 2006]: The Linux 2.6.16 kernel release introduced Oracle's OCFS2 clustering file-system, support for the CELL processor, support for moving the physical location of pages between nodes on NUMA systems, high-resolution timers, the configfs file-system, and a number of driver updates. SuSE 10.1 and Mandriva 2007 picked up this release.

Linux 2.6.17 [17 June 2006]: The third official Linux kernel release of 2006 brought support for Sun's Niagara CPUs, the Broadcom bcm43xx WiFi driver, the splice I/O mechanism, a scheduler domain for optimizing CPU scheduling on multi-core systems, block queue I/O tracing, RAID5 re-shaping support, and performance improvements to EXT3 by mapping multiple blocks at once.

Linux 2.6.18 [20 September 2006]: Some of the Linux 2.6.18 features included the Lockdep kernel lock validator, SMPnice, swapless page migration, a major libata driver update with support for features like NCQ (Native Command Queuing) and hot-plugging, the default I/O scheduler becoming CFQ, and a variety of new drivers. Fedora Core 6 and PCLinuxOS 2007 shipped with this kernel.

Linux 2.6.19 [29 November 2006]: The Linux 2.6.19 kernel was the last release of 2006 and it brought eCryptfs, the first experimental snapshot of EXT4 in the mainline Linux kernel, physical CPU hot-plug and memory hot-add on x86_64, support for building x86 kernels with GCC stack protection, vectored a-synchronization I/O, IDE PATA drivers using libata, and the usual collection of driver updates. This kernel made its way into Ubuntu 7.04, the Feisty Fawn.

Linux 2.6.20 [5 February 2007]: The first 2007 kernel release for Linux brought Sony PlayStation 3 support, KVM virtualization, i386 para-virtualization, x86 re-locatable kernel support, I/O accounting, and a generic HID layer.

Linux 2.6.21 [25 April 2007]: New to the Linux kernel in April of 2007 was the Virtual Machine Interface (VMI), KVM updates to support para-virtualization and live migration along with a stable user-space interface and CPU hot-plug support, a tick-less kernel / dynticks.

Linux 2.6.22 [8 July 2007]: Just after the 2007 US Independence Day was marked by the introduction of the new SLUB allocator, a new wireless stack, a new IEEE-1394 Firewire stack, and a variety of new Linux hardware drivers. This kernel was found with Mandriva Linux 2008 and openSUSE 10.3.

Linux 2.6.23 [9 October 2007]: Those recovering from Oktoberfest in 2007 had the new CFS process scheduler to look at along with on-demand read-ahead, LGuest virtualization, a partial merge of Xen virtualization, KVM SMP guests and speed improvements, and improvements to the experimental EXT4 support. Fedora 8 shipped Linux 2.6.23.

Linux 2.6.24 [24 January 2008]: Bringing in 2008 was the Linux 2.6.24 kernel with tick-less kernel support for x86_64, CFS improvements, anti-fragmentation patches, USB authorization, and x86_32/x86_64 arch reunification. Ubuntu 8.04 LTS and openSUSE 11.0 used this kernel.

Linux 2.6.25 [17 April 2008]: Some of the highlights for the Linux 2.6.25 kernel included the introduction of the memory resource controller, real-time group scheduling, RCU pre-emption support, better process memory usage management, Latencytop support, and more EXT4 file-system updates.

Linux 2.6.26 [13 July 2008]: In the summer of '08 new in the Linux kernel world was KVM virtualization support on IA64/PowerPC/S390 architectures, much-improved Linux web-camera support, wireless mesh networking 802.11s draft support, x86 PAT support, minor updates to EXT3/EXT4, and various other work.

Linux 2.6.27 [9 October 2008]: This kernel release introduced delayed allocation support for the EXT4 file-system for improved disk performance, block layer data integrity support, multi-queue networking support, MMIOtrace support, support for external firmware, and support for up to 4096 CPUs on Linux x86. Ubuntu 8.10 used this kernel.

Linux 2.6.28 [25 December 2008]: Just before ending out 2008 was the Linux 2.6.28 kernel that marked the EXT4 file-system as now being stable, integration of GEM (the Graphics Execution Manager) developed by Intel for in-kernel GPU memory management and a pre-requisite for kernel mode-setting (KMS), and memory management scalability improvements.

Linux 2.6.29 [23 March 2009]: The first Linux kernel release of 2009 brought support for Intel kernel mode-setting, experimental support for the Btrfs file-system, SquashFS integration, initial WiMax support, eCryptfs file-name encryption, and a no journal mode for EXT4. Linux 2.6.29 was also the first kernel to introduce staging drivers and this release was represented by the Tuz mascot while Tux took a short holiday.

Linux 2.6.30 [9 June 2009]: Prominent features of this summer 2009 kernel update brought the NILFS2 and EXOFS file-systems, IEEE 802.11w support, Tomoyo, LZMA/BZIP2 kernel image compression support, and the integrity management architecture.

Linux 2.6.31 [9 September 2009]: Just before going off to Oktoberfest 2009 was the Linux 2.6.31 kernel release with initial USB 3.0 support, ATI Radeon kernel mode-setting support, improved desktop interactivity when the system is under memory pressure, kmemcheck / kmemleak integration, and integration of the kernel performance counters infrastructure.

Linux 2.6.32 [3 December 2009]: The last kernel release of 2009 brought Btrfs file-system improvements, memory de-duplication support, ATI Radeon R600/R700 DRM 3D and kernel mode-setting support, a low-latency mode for the CFQ scheduler, tracing improvements, and run-time power management.

Linux 2.6.33 [24 February 2010]: Finally getting to this year's kernels we have Linux 2.6.33. The Linux 2.6.33 kernel introduced the Nouveau driver for finally having open-source DRM/KMS support for NVIDIA graphics processors within the mainline Linux kernel, support for Xen POV-on-HVM guests, swappable KSM pages, memory compressed swapping via Compcache, the KMS page-flipping ioctl, the VMware Virtual GPU driver, and Google Android support being dropped from the mainline Linux kernel.

Linux 2.6.34 [16 May 2010]: In May of this year we had the Linux 2.6.34 kernel release that brought Btrfs file-system updates, a-synchronous suspend/resume support within the power management code, and basic GPU switching support.

Linux 2.6.35 [1 August 2010]: Before ending out the summer was the 2.6.35 kernel with support for transparent spreading of incoming network load across all available CPU cores, direct I/O support for the Btrfs file-system, an experimental journal mode for the XFS file-system, Intel VA-API H.264/VC1 video acceleration support, ATI Radeon power management, and memory compaction.

Linux 2.6.36 [20 October 2010]: Coming out just last month was the Linux 2.6.36 kernel with KMS+KDB integration, concurrency-managed work-queues, Intel Intelligent Power Sharing support, improved VM-related desktop responsiveness, improved open-source graphics, and AppArmor integration.

Linux 2.6.37 [Unreleased]: For the Linux 2.6.37 kernel testing we used a Git snapshot of the Linus 2.6 Git tree as of 2010-10-31 (one day short of the Linux 2.6.37-rc1 kernel release), since this kernel will not be released for a few months. Some of the new features of the Linux 2.6.37 kernel include a number of DRM improvements, an Intel Poulsbo driver, Broadcom's open-source 802.11n WiFi driver, various core improvements, and the Big Kernel Lock (BKL) has finally been eliminated from the core kernel code.

It is quite amazing the features introduced into the Linux kernel just in the past five years and how they have matured, but let us see now how the performance has changed.


Related Articles