1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Google Engineer Reworks Direct I/O In Linux Kernel

Linux Kernel

Published on 14 February 2013 01:06 AM EST
Written by Michael Larabel in Linux Kernel
9 Comments

A Google engineer working on Linux, Kent Overstreet, has reworked the Linux DIO (Direct I/O) code so that it's "vastly simpler" while also being faster for at least some test cases.

On Monday was the original "work in progress" patch to improve the DIO code in the Linux kernel. As Overstreet wrote then, "The end result is _vastly_ simpler - direct-io.c is now ~700 lines, vs. ~1300 previously. dio_submit is almost gone, I'm down to 4 things left in it. It relies heavily on my block layer patches for efficient bio splitting, and making generic_make_request() take arbitrary size bios...It also gets rid of the various differences between async and sync requests - previously, for async reads it marked pages dirty before submitting the io (in process context), then on completion punts to worqueue to redirty the pages if any need to be. This now happens for sync reads, too."

Not only does it yield a net reduction in the number of lines of code for the Linux DIO code, but it's also yielding performance improvements with the most recent patch.

The Google engineer published on Wednesday, "Got it working and ran some benchmarks. On a high end SSD, doing 4k random reads with fio I got around a 30% increase in throughput...the decrease in compiled binary size is even more dramatic than the reduction in [lines of code]...It's only been lightly tested - I haven't run xfstests yet - but there shouldn't be anything broken excluding btrfs. There's a few more performance optimizations I may do, but aside from the btrfs issues I think it's essentially done. Due to the sheer number of hairy corner cases in the dio code, I'd really like to get as much review as possible. The new code should be vastly easier to review and understand, I think."

This Linux I/O improvement that's leaner yet higher-performing sounds exciting but hasn't been reviewed extensively yet by Linux kernel developers. If everything pans out, hopefully this work will be merged into a future Linux kernel release in the near-term.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Articles & Reviews
  1. Turning A Basement Into A Big Linux Server Room
  2. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  3. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  4. The New Place Where Linux Code Is Constantly Being Benchmarked
  5. 18-GPU NVIDIA/AMD Linux Comparison Of BioShock: Infinite
  6. Phoronix Test Suite 5.6 Adds New Phoromatic Enterprise Benchmarking Features
Latest Linux News
  1. Linux 4.0-rc6 Kernel Released
  2. Automatically Managing The Linux Benchmarks Firing Constantly
  3. The Big Features Of The Linux 4.0 Kernel
  4. Mesa's Android Support Is Currently In Bad Shape
  5. Wayland's Weston Terminal Can Now Be Minimized
  6. Phoronix - Working Towards Faster Page Loads
  7. Improved OpenCL Support For Blender's Cycles Renderer
  8. Mesa 10.5.2 Packs In A Handful Of Fixes
  9. More Fedora/Ubuntu Linux vs. OS X OpenGL Benchmarks
  10. Intel Adds Mesa IR To NIR Translator & Makes Other NIR Improvements
Most Viewed News This Week
  1. Introducing The Library Operating System For Linux
  2. Allwinner Continues Jerking Around The Open-Source Community
  3. AMD Is Hiring Two More Open-Source Linux GPU Driver Developers
  4. Open-Source Driver Fans Will Love NVIDIA's New OpenGL Demo
  5. Systemd Change Allows For Stateless Systems With Tmpfs
  6. GNOME 3.16 Released: It's Their Best Release Yet
  7. GNOME Shell & Mutter 3.16.0 Released
  8. GNU Nano 2.4.0 Brings Complete Undo System, Linter Support & More