summary refs log tree commit diff stats
path: root/block/export/export.c
diff options
context:
space:
mode:
authorXie Yongji <xieyongji@bytedance.com>2022-05-23 16:46:09 +0800
committerKevin Wolf <kwolf@redhat.com>2022-06-24 17:07:06 +0200
commit2a2359b84407b35fe978e98b7396f2ab8c5dd8b7 (patch)
tree9ed8b268bc8db0f025db90f5307a822d5fdfb13a /block/export/export.c
parenta6caeee8111386b2d16ee07fe817193cde7f0d2a (diff)
downloadfocaccia-qemu-2a2359b84407b35fe978e98b7396f2ab8c5dd8b7.tar.gz
focaccia-qemu-2a2359b84407b35fe978e98b7396f2ab8c5dd8b7.zip
vduse-blk: Implement vduse-blk export
This implements a VDUSE block backends based on
the libvduse library. We can use it to export the BDSs
for both VM and container (host) usage.

The new command-line syntax is:

$ qemu-storage-daemon \
    --blockdev file,node-name=drive0,filename=test.img \
    --export vduse-blk,node-name=drive0,id=vduse-export0,writable=on

After the qemu-storage-daemon started, we need to use
the "vdpa" command to attach the device to vDPA bus:

$ vdpa dev add name vduse-export0 mgmtdev vduse

Also the device must be removed via the "vdpa" command
before we stop the qemu-storage-daemon.

Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20220523084611.91-7-xieyongji@bytedance.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/export/export.c')
-rw-r--r--block/export/export.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/block/export/export.c b/block/export/export.c
index 7253af3bc3..4744862915 100644
--- a/block/export/export.c
+++ b/block/export/export.c
@@ -26,6 +26,9 @@
 #ifdef CONFIG_VHOST_USER_BLK_SERVER
 #include "vhost-user-blk-server.h"
 #endif
+#ifdef CONFIG_VDUSE_BLK_EXPORT
+#include "vduse-blk.h"
+#endif
 
 static const BlockExportDriver *blk_exp_drivers[] = {
     &blk_exp_nbd,
@@ -35,6 +38,9 @@ static const BlockExportDriver *blk_exp_drivers[] = {
 #ifdef CONFIG_FUSE
     &blk_exp_fuse,
 #endif
+#ifdef CONFIG_VDUSE_BLK_EXPORT
+    &blk_exp_vduse_blk,
+#endif
 };
 
 /* Only accessed from the main thread */