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 Linux Hardware Reviews
  1. 13-Way Low-End GPU Comparison With AMD's AM1 Athlon
  2. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  3. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  4. Overclocking The AMD AM1 Athlon & Sempron APUs
Latest Linux Articles
  1. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  2. AMD OpenCL Performance With AM1 Kabini APUs
  3. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  4. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
Latest Linux News
  1. Getting Hit By The Variable Performance Of The Public Cloud
  2. Git 2.0 Test Releases Begin With Many Changes
  3. Wine 1.7.17 Works On Its Task Scheduler, C Run-Time
  4. The Improv ARM Board Still Isn't Shipping; Riding A Dead Horse?
  5. Debian To Maintain 6.0 Squeeze As An LTS Release
  6. Wasteland 2 Is Finally Released For Linux Gamers
  7. FreeBSD Advances For ARM, Bhyve, Clang
  8. Ubuntu 14.04 LTS "Trusty Tahr" Officially Released
  9. Ubuntu 12.04 LTS vs. 14.04 LTS Server Benchmarks
  10. QEMU 2.0 Released With ARM, x86 Enhancements
  11. Running The Unity 8 Preview Session On Ubuntu 14.04 LTS
  12. R600 Gallium3D Disables LLVM Back-End By Default
Latest Forum Discussions
  1. Suggestions about how to make a Radeon HD 7790 work decently?
  2. The GNOME Foundation Is Running Short On Money
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. Radeon 8000M problematic on Linux?
  5. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  6. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  7. Suspected PHP Proxy Issue
  8. Change installation destination from home directory