An In-Kernel Virtio Block Device Accelerator For Linux

Posted by Michael Larabel on December 02, 2012

For the past several months there has been work on vhost-blk, an in-kernel virito-blk device accelerator. This kernel-based accelerator can provide measurable speed-ups for disk/block device access by virtualized guest machines.

From the latest vhost-blk patch: "Due to lack of proper in-kernel AIO interface, this version converts guest's I/O request to bio and use submit_bio() to submit I/O directly. So this version any supports raw block device as guest's disk image, e.g. /dev/sda, /dev/ram0. We can add file based image support to vhost-blk once we have in-kernel AIO interface."

In terms of handling an in-kernel AIO interface, there's also patches floating around.

The original vhost-blk support patch, which amounts to a few hundred lines of new code in the Linux kernel, amounted to 5~15% performance improvements compared to the user-space virtio-blk implementation. Performance results on the latest vhost-blk v6 patch indicate performance improvements from +13~108% on a Fusion I/O device or up to a 216% performance improvement when dealing with a Ramdisk device.

It's possible we could see vhost-blk support merged into the Linux 3.8 kernel.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite