April 1, 2014

Linux 3.14 Release: No 'Pi' But a New 'PIE' Fights Bufferbloat

TuxAfter adding an extra release candidate to solidify the final result -- to the tune of a week's delay -- Linux creator Linus Torvalds on Sunday unleashed version 3.14 of the Linux kernel.

"We had a few fairly late changes that I could have done without, but the changelog from -rc8 is still pretty small, and I'm feeling pretty good about it all," Torvalds wrote in the official announcement on Sunday night. "If we did end up with any last-minute problems due to the final spurt of patches, they'll be pretty specific, and it really didn't make sense to me to delay the release without anything known pending."

Although the release's version number elicited a number of requests for pi-themed names early on, Torvalds held his ground. "I realize that as a number, 3.14 looks familiar to people, and I had naming requests related to that," he explained in his announcement of the first release candidate back in February. "But that's simply not how the nonsense kernel names work. You can console yourself with the fact that the name doesn't actually show up anywhere, and nobody really cares."

"Shuffling Zombie Juror" was the name Torvalds chose instead. Naming issues aside, this new version of the Linux kernel adds a new deadline scheduler and a new anti-bufferbloat feature, among other notable additions. Ready for a run-down? Here are some of the highlights.

1. A Key Blow Against Bufferbloat

Bufferbloat is the ongoing problem whereby excess buffers in the network cause high latency and jitter, and we've already seen several new features added to Linux to combat the problem -- the Codel queue management algorithm added in Linux 3.5 was just one example. Now joining the ranks of the anti-bufferbloat tools already out there, Linux 3.14 marks the debut of a new network packet scheduler called "PIE" (short for Proportional Integral controller Enhanced) that's designed to control the average queueing latency to a target value.

"Simulation results, theoretical analysis and Linux testbed results have shown that PIE can ensure low latency and achieve high link utilization under various congestion situations," explains the changelog on KernelNewbies.org. "The design incurs very small overhead."

2.Better Real-Time Scheduling

Though Linux already offers support for prioritizing the scheduling of processes so that higher-priority processes get more scheduling time than lower-priority ones do, the prioritization approach used so far has not been optimal for real-time tasks. Deadline scheduling, or "SCHED_DEADLINE," is now included in Linux 3.14 and offers an alternative better-suited for real-time tasks. Essentially, deadline scheduling implements the "earliest deadline first" (EDF) algorithm to ensure that all processes are completed before their deadlines.

3. A Stable Zram at Last

Though it used to be called Compcache, Zram is a memory compression technology that has been part of the Linux kernel since the arrival of version 2.6.33 back in 2010. Now, with Linux 3.14, Zram has been moved out of staging and is considered stable at last. Zram is particularly good at improving responsiveness in systems with limited memory, and is already being used in Android 4.4, Cyanogenmod, Chrome OS and Lubuntu.

That, of course, is a mere sampling of what's new in Linux 3.14; other additions include a userspace locking validator, kernel address space randomization and TCP automatic corking. For a full summary, check out the changelog on KernelNewbies.org