From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <lvivier@redhat.com>,
Kevin Wolf <kwolf@redhat.com>, Thomas Huth <thuth@redhat.com>,
qemu-block@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
Coiby Xu <coiby.xu@gmail.com>,
Raphael Norwitz <raphael.norwitz@nutanix.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Max Reitz <mreitz@redhat.com>
Subject: [PATCH 02/12] configure: introduce --enable-vhost-user-blk-server
Date: Tue, 27 Oct 2020 17:35:18 +0000 [thread overview]
Message-ID: <20201027173528.213464-3-stefanha@redhat.com> (raw)
In-Reply-To: <20201027173528.213464-1-stefanha@redhat.com>
Make it possible to compile out the vhost-user-blk server. It is enabled
by default on Linux.
Note that vhost-user-server.c depends on libvhost-user, which requires
CONFIG_LINUX. The CONFIG_VHOST_USER dependency was erroneous since that
option controls vhost-user frontends (previously known as "master") and
not device backends (previously known as "slave").
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
configure | 15 +++++++++++++++
block/export/export.c | 4 ++--
block/export/meson.build | 2 +-
util/meson.build | 2 +-
4 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/configure b/configure
index 55e07c82dd..b455ca8c7f 100755
--- a/configure
+++ b/configure
@@ -328,6 +328,7 @@ vhost_crypto=""
vhost_scsi=""
vhost_vsock=""
vhost_user=""
+vhost_user_blk_server=""
vhost_user_fs=""
kvm="auto"
hax="auto"
@@ -1240,6 +1241,10 @@ for opt do
;;
--enable-vhost-vsock) vhost_vsock="yes"
;;
+ --disable-vhost-user-blk-server) vhost_user_blk_server="no"
+ ;;
+ --enable-vhost-user-blk-server) vhost_user_blk_server="yes"
+ ;;
--disable-vhost-user-fs) vhost_user_fs="no"
;;
--enable-vhost-user-fs) vhost_user_fs="yes"
@@ -1784,6 +1789,7 @@ disabled with --disable-FEATURE, default is enabled if available:
vhost-crypto vhost-user-crypto backend support
vhost-kernel vhost kernel backend support
vhost-user vhost-user backend support
+ vhost-user-blk-server vhost-user-blk server support
vhost-vdpa vhost-vdpa kernel backend support
spice spice
rbd rados block device (rbd)
@@ -2375,6 +2381,12 @@ if test "$vhost_net" = ""; then
test "$vhost_kernel" = "yes" && vhost_net=yes
fi
+# libvhost-user is Linux-only
+test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
+if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
+ error_exit "--enable-vhost-user-blk-server is only available on Linux"
+fi
+
##########################################
# pkg-config probe
@@ -6260,6 +6272,9 @@ fi
if test "$vhost_vdpa" = "yes" ; then
echo "CONFIG_VHOST_VDPA=y" >> $config_host_mak
fi
+if test "$vhost_user_blk_server" = "yes" ; then
+ echo "CONFIG_VHOST_USER_BLK_SERVER=y" >> $config_host_mak
+fi
if test "$vhost_user_fs" = "yes" ; then
echo "CONFIG_VHOST_USER_FS=y" >> $config_host_mak
fi
diff --git a/block/export/export.c b/block/export/export.c
index c3478c6c97..bad6f21b1c 100644
--- a/block/export/export.c
+++ b/block/export/export.c
@@ -22,13 +22,13 @@
#include "qapi/qapi-commands-block-export.h"
#include "qapi/qapi-events-block-export.h"
#include "qemu/id.h"
-#if defined(CONFIG_LINUX) && defined(CONFIG_VHOST_USER)
+#ifdef CONFIG_VHOST_USER_BLK_SERVER
#include "vhost-user-blk-server.h"
#endif
static const BlockExportDriver *blk_exp_drivers[] = {
&blk_exp_nbd,
-#if defined(CONFIG_LINUX) && defined(CONFIG_VHOST_USER)
+#ifdef CONFIG_VHOST_USER_BLK_SERVER
&blk_exp_vhost_user_blk,
#endif
};
diff --git a/block/export/meson.build b/block/export/meson.build
index 9fb4fbf81d..19526435d8 100644
--- a/block/export/meson.build
+++ b/block/export/meson.build
@@ -1,2 +1,2 @@
blockdev_ss.add(files('export.c'))
-blockdev_ss.add(when: ['CONFIG_LINUX', 'CONFIG_VHOST_USER'], if_true: files('vhost-user-blk-server.c'))
+blockdev_ss.add(when: 'CONFIG_VHOST_USER_BLK_SERVER', if_true: files('vhost-user-blk-server.c'))
diff --git a/util/meson.build b/util/meson.build
index c5159ad79d..f359af0d46 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -66,7 +66,7 @@ if have_block
util_ss.add(files('main-loop.c'))
util_ss.add(files('nvdimm-utils.c'))
util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', 'qemu-coroutine-io.c'))
- util_ss.add(when: ['CONFIG_LINUX', 'CONFIG_VHOST_USER'], if_true: [
+ util_ss.add(when: 'CONFIG_LINUX', if_true: [
files('vhost-user-server.c'), vhost_user
])
util_ss.add(files('block-helpers.c'))
--
2.26.2
next prev parent reply other threads:[~2020-10-27 17:42 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 17:35 [PATCH 00/12] block/export: vhost-user-blk server cleanups and tests Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 01/12] libvhost-user: follow QEMU comment style Stefan Hajnoczi
2020-10-27 17:35 ` Stefan Hajnoczi [this message]
2020-10-27 17:35 ` [PATCH 03/12] block/export: make vhost-user-blk config space little-endian Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 04/12] block/export: fix vhost-user-blk get_config() information leak Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 05/12] contrib/vhost-user-blk: fix " Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 06/12] test: new qTest case to test the vhost-user-blk-server Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 07/12] tests/qtest: add multi-queue test case to vhost-user-blk-test Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 08/12] libqtest: add qtest_socket_server() Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 09/12] vhost-user-blk-test: rename destroy_drive() to destroy_file() Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 10/12] vhost-user-blk-test: close fork child file descriptors Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 11/12] vhost-user-blk-test: drop unused return value Stefan Hajnoczi
2020-10-27 17:35 ` [PATCH 12/12] vhost-user-blk-test: fix races by using fd passing Stefan Hajnoczi
2020-10-30 12:42 ` [PATCH 00/12] block/export: vhost-user-blk server cleanups and tests Michael S. Tsirkin
2020-11-02 10:43 ` Michael S. Tsirkin
2020-11-02 17:00 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201027173528.213464-3-stefanha@redhat.com \
--to=stefanha@redhat.com \
--cc=coiby.xu@gmail.com \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=mreitz@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=raphael.norwitz@nutanix.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.