Linux 5.15 Adds VDUSE For vDPA Devices In User-Space

Written by Michael Larabel in Virtualization on 9 September 2021 at 02:12 PM EDT. 2 Comments
VIRTUALIZATION
Akin to FUSE for file-systems in user-space, VDUSE is set to be merged for Linux 5.15 in adding support for vDPA devices in user-space.

The vDPA framework is the VirtIO Data Path Acceleration code within the kernel for devices complying with the VirtIO specification but relying on a vendor-specific control path. The vDPA framework is increasingly used for abstracting hardware and concealing some elements of the hardware complexities to software while having a unified user-space API as a VirtIO device.

With Linux 5.15 there is now "VDUSE" added after the patches for it have been floating around since last year. VDUSE allows for implementing vDPA software-emulated devices in user-space.

Bytedance developed VDUSE as part of their effort to implementing a block device that connects to their distributed storage system that can be used by containers and VMs.
The vDPA device is created by ioctl(VDUSE_CREATE_DEV) on /dev/vduse/control. Then a char device interface (/dev/vduse/$NAME) is exported to userspace for device emulation.

In order to make the device emulation more secure, the device's control path is handled in kernel. A message mechnism is introduced to forward some dataplane related control messages to userspace.

And in the data path, the DMA buffer will be mapped into userspace address space through different ways depending on the vDPA bus to which the vDPA device is attached. In virtio-vdpa case, the MMU-based software IOTLB is used to achieve that. And in vhost-vdpa case, the DMA buffer is reside in a userspace memory region which can be shared to the VDUSE userspace processs via transferring the shmfd.

Initially just VirtIO block devices are supported by VDUSE.

Those interested in learning more about VDUSE can see this documentation.

VDUSE was sent in today as part of this PR.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week