Linux Kernel Improvements

Code bloat is prominent in the dark side of software that’s successful over the long term; every application that we use becomes more feature-rich and in some sense larger and harder to use as time goes by. Word 1.0 for DOS was easy as punch to use compared to Word 2010, largely because it was so much more limited. Open Source projects, where anybody and his dog can contribute tweaks (and does in order to get his name in the code,) has this problem in spades, so it’s good to know that the Linux people are addressing code bloat while adding features to the 2.6.35 kernel:

Linux creator Linus Torvalds has released the new Linux 2.6.35 kernel, providing users of the open source operating system with new networking capabilities and performance enhancements, along with filesystem improvements.

Chief among improvements in the new 2.6.35 Linux kernel are incoming network traffic load-spreading features: Receive Packet Steering (RPS) and Receive Flow Steering (RFS), which aim to improve performance. Both enhancements were contributed by search engine giant Google.

“RPS distributes the load of received packet processing across multiple CPUs,” Google (NASDAQ: GOOG) developer Tom Herbert wrote in his Linux code commit message.”This solution queues packets early on in the receive path on the backlog queues of other CPUs. This allows protocol processing (e.g. IP and TCP) to be performed on packets in parallel.”

Receive Flow Steering (RFS) is extension to RPS and directs (or “steers”) application packets to the correct CPU.

“The obvious benefit of RFS (over just RPS) is that it achieves CPU locality between the receive processing for a flow and the applications processing,” Herbert wrote in his Linux commit for RFS. “This can result in increased performance.”

My Linux distro is still at the 2.6.33 level, so I’m looking forward to this upgrade. Faster is better.