Hi all, Last few months ago, VDUSE (vDPA Device in Userspace) [1] has been merged into Linux kernel as a framework that make it possible to emulate a vDPA device in userspace. This series aimed at implementing a VDUSE block backend based on the qemu-storage-daemon infrastructure.
To support that, we firstly introduce a VDUSE library as a subproject (like what libvhost-user does) to help implementing VDUSE backends in QEMU. Then a VDUSE block export is implemented based on this library. At last, we add resize and reconnect support to the VDUSE block export and VDUSE library. Since we don't support vdpa-blk in QEMU currently, the VM case is tested with my previous patchset [2]. [1] https://www.kernel.org/doc/html/latest/userspace-api/vduse.html [2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg797569.html Please review, thanks! Xie Yongji (5): headers: Add vduse.h libvduse: Add VDUSE (vDPA Device in Userspace) library vduse-blk: implements vduse-blk export vduse-blk: Add vduse-blk resize support libvduse: Add support for reconnecting block/export/export.c | 6 + block/export/meson.build | 5 + block/export/vduse-blk.c | 448 +++++++ block/export/vduse-blk.h | 20 + include/standard-headers/linux/vduse.h | 306 +++++ meson.build | 28 + meson_options.txt | 4 + qapi/block-export.json | 24 +- scripts/meson-buildoptions.sh | 7 + scripts/update-linux-headers.sh | 1 + subprojects/libvduse/include/atomic.h | 1 + subprojects/libvduse/libvduse.c | 1267 +++++++++++++++++++ subprojects/libvduse/libvduse.h | 195 +++ subprojects/libvduse/meson.build | 10 + subprojects/libvduse/standard-headers/linux | 1 + 15 files changed, 2321 insertions(+), 2 deletions(-) create mode 100644 block/export/vduse-blk.c create mode 100644 block/export/vduse-blk.h create mode 100644 include/standard-headers/linux/vduse.h create mode 120000 subprojects/libvduse/include/atomic.h create mode 100644 subprojects/libvduse/libvduse.c create mode 100644 subprojects/libvduse/libvduse.h create mode 100644 subprojects/libvduse/meson.build create mode 120000 subprojects/libvduse/standard-headers/linux -- 2.20.1