Latest improvements are already in the mainline Linux kernel

Jun 19, 2017 16:17 GMT  ·  By

A year ago, we reported on the performance improvements brought by Collabora's developers to emulated NVMe devices, which were contributed as patches upstream in the Linux 4.8 kernel.

The patches added huge performance improvements to emulated NVMe devices, but work didn't stop there, and Collabora's Helen Koike is now reporting on the official release in the NVMe Specification Revision 1.3 under the name "Doorbell Buffer Config command."

"You can already feel the difference in performance if you compile [Linux] kernel 4.12-rc1 (or later) and run it on a virtual machine hosted on Google Compute Engine," says Helen Koike. "Google actually updated their hypervisor as soon as the feature was ratified by the NVMe working group, even before it was publicly released."

Coming soon to a Linux-based operating system near you

In her later report, the Collabora developer explains that the original proposal saw only a small number of changes, such as opcodes, return values and some fancy names for the buffers, which are now called EventIdx and Shadow Doorbell. She also tells us that the implementation already landed in the mainline Linux kernel.

This means that the next time you upgrade your distro's kernel packages to the newest branch, in this case, we're talking about Linux 4.12 as it's the latest version that's in development at the moment of writing this article, you'll get those awesome NVMe improvements we've been waiting for so long.

To show the world that NVMe is indeed a lot faster now, Collabora's development team ran a few tests and shared the results with us, which were obtained in a machine of type n1-standard-4 (with 4 vCPUs and 15 GB RAM) at Google Cloud Engine platform running Linux kernel 4.12 RC5. Check them out below!

With Shadow Doorbell and EventIdx buffers
With Shadow Doorbell and EventIdx buffers
Without Shadow Doorbell and EventIdx buffers
Without Shadow Doorbell and EventIdx buffers

Photo Gallery (3 Images)

Collabora improves  emulated NVMe devices
With Shadow Doorbell and EventIdx buffersWithout Shadow Doorbell and EventIdx buffers
Open gallery