Linux 5.15 Adds VDUSE For vDPA Devices In User-Space
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.
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.
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.
2 Comments