[PATCH 29/34] build: move vhost-vsock configuration to Kconfig

Paolo Bonzini posted 34 patches 3 years, 9 months ago
Maintainers: Yuval Shaia <yuval.shaia.ml@gmail.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Jason Wang <jasowang@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <fam@euphon.net>, Stefano Stabellini <sstabellini@kernel.org>, Anthony Perard <anthony.perard@citrix.com>, Paul Durrant <paul@xen.org>, "Michael S. Tsirkin" <mst@redhat.com>, Juan Quintela <quintela@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Michael Roth <michael.roth@amd.com>, John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Thomas Huth <thuth@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>
There is a newer version of this series
[PATCH 29/34] build: move vhost-vsock configuration to Kconfig
Posted by Paolo Bonzini 3 years, 9 months ago
vhost-vsock and vhost-user-vsock are two devices of their own; it should
be possible to enable/disable them with --without-default-devices, not
--without-default-features.  Compute their default value in Kconfig to
obtain the more intuitive behavior.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure         | 16 ----------------
 hw/virtio/Kconfig | 10 ++++++++++
 meson.build       |  1 -
 3 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/configure b/configure
index 2aa4dc3ce1..a3b57877e5 100755
--- a/configure
+++ b/configure
@@ -286,7 +286,6 @@ vhost_kernel="$default_feature"
 vhost_net="$default_feature"
 vhost_crypto="$default_feature"
 vhost_scsi="$default_feature"
-vhost_vsock="$default_feature"
 vhost_user="no"
 vhost_user_fs="$default_feature"
 vhost_vdpa="$default_feature"
@@ -878,10 +877,6 @@ for opt do
   ;;
   --enable-vhost-scsi) vhost_scsi="yes"
   ;;
-  --disable-vhost-vsock) vhost_vsock="no"
-  ;;
-  --enable-vhost-vsock) vhost_vsock="yes"
-  ;;
   --disable-vhost-user-fs) vhost_user_fs="no"
   ;;
   --enable-vhost-user-fs) vhost_user_fs="yes"
@@ -1108,7 +1103,6 @@ cat << EOF
   safe-stack      SafeStack Stack Smash Protection. Depends on
                   clang/llvm >= 3.7 and requires coroutine backend ucontext.
   vhost-net       vhost-net kernel acceleration support
-  vhost-vsock     virtio sockets device support
   vhost-scsi      vhost-scsi kernel target support
   vhost-crypto    vhost-user-crypto backend support
   vhost-kernel    vhost kernel backend support
@@ -1548,10 +1542,6 @@ test "$vhost_scsi" = "" && vhost_scsi=$vhost_kernel
 if test "$vhost_scsi" = "yes" && test "$vhost_kernel" != "yes"; then
   error_exit "--enable-vhost-scsi requires --enable-vhost-kernel"
 fi
-test "$vhost_vsock" = "" && vhost_vsock=$vhost_kernel
-if test "$vhost_vsock" = "yes" && test "$vhost_kernel" != "yes"; then
-  error_exit "--enable-vhost-vsock requires --enable-vhost-kernel"
-fi
 
 # vhost-user backends
 test "$vhost_crypto" = "" && vhost_crypto=$vhost_user
@@ -2104,12 +2094,6 @@ fi
 if test "$vhost_crypto" = "yes" ; then
   echo "CONFIG_VHOST_CRYPTO=y" >> $config_host_mak
 fi
-if test "$vhost_vsock" = "yes" ; then
-  echo "CONFIG_VHOST_VSOCK=y" >> $config_host_mak
-  if test "$vhost_user" = "yes" ; then
-    echo "CONFIG_VHOST_USER_VSOCK=y" >> $config_host_mak
-  fi
-fi
 if test "$vhost_kernel" = "yes" ; then
   echo "CONFIG_VHOST_KERNEL=y" >> $config_host_mak
 fi
diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
index c144d42f9b..b642ae1081 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -59,6 +59,16 @@ config VIRTIO_MEM
     depends on VIRTIO_MEM_SUPPORTED
     select MEM_DEVICE
 
+config VHOST_VSOCK
+    bool
+    default y
+    depends on VIRTIO && VHOST_KERNEL
+
+config VHOST_USER_VSOCK
+    bool
+    default y
+    depends on VIRTIO && VHOST_USER
+
 config VHOST_USER_I2C
     bool
     default y
diff --git a/meson.build b/meson.build
index ff5c076805..033d0c9aa1 100644
--- a/meson.build
+++ b/meson.build
@@ -3678,7 +3678,6 @@ summary_info += {'vhost-kernel support': config_host.has_key('CONFIG_VHOST_KERNE
 summary_info += {'vhost-net support': config_host.has_key('CONFIG_VHOST_NET')}
 summary_info += {'vhost-crypto support': config_host.has_key('CONFIG_VHOST_CRYPTO')}
 summary_info += {'vhost-scsi support': config_host.has_key('CONFIG_VHOST_SCSI')}
-summary_info += {'vhost-vsock support': config_host.has_key('CONFIG_VHOST_VSOCK')}
 summary_info += {'vhost-user support': config_host.has_key('CONFIG_VHOST_USER')}
 summary_info += {'vhost-user-blk server support': have_vhost_user_blk_server}
 summary_info += {'vhost-user-fs support': config_host.has_key('CONFIG_VHOST_USER_FS')}
-- 
2.35.1
Re: [PATCH 29/34] build: move vhost-vsock configuration to Kconfig
Posted by Marc-André Lureau 3 years, 9 months ago
On Wed, Apr 20, 2022 at 8:19 PM Paolo Bonzini <pbonzini@redhat.com> wrote:

> vhost-vsock and vhost-user-vsock are two devices of their own; it should
> be possible to enable/disable them with --without-default-devices, not
> --without-default-features.  Compute their default value in Kconfig to
> obtain the more intuitive behavior.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>

We also lose the configure options, but it is overdue

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>


> ---
>  configure         | 16 ----------------
>  hw/virtio/Kconfig | 10 ++++++++++
>  meson.build       |  1 -
>  3 files changed, 10 insertions(+), 17 deletions(-)
>
> diff --git a/configure b/configure
> index 2aa4dc3ce1..a3b57877e5 100755
> --- a/configure
> +++ b/configure
> @@ -286,7 +286,6 @@ vhost_kernel="$default_feature"
>  vhost_net="$default_feature"
>  vhost_crypto="$default_feature"
>  vhost_scsi="$default_feature"
> -vhost_vsock="$default_feature"
>  vhost_user="no"
>  vhost_user_fs="$default_feature"
>  vhost_vdpa="$default_feature"
> @@ -878,10 +877,6 @@ for opt do
>    ;;
>    --enable-vhost-scsi) vhost_scsi="yes"
>    ;;
> -  --disable-vhost-vsock) vhost_vsock="no"
> -  ;;
> -  --enable-vhost-vsock) vhost_vsock="yes"
> -  ;;
>    --disable-vhost-user-fs) vhost_user_fs="no"
>    ;;
>    --enable-vhost-user-fs) vhost_user_fs="yes"
> @@ -1108,7 +1103,6 @@ cat << EOF
>    safe-stack      SafeStack Stack Smash Protection. Depends on
>                    clang/llvm >= 3.7 and requires coroutine backend
> ucontext.
>    vhost-net       vhost-net kernel acceleration support
> -  vhost-vsock     virtio sockets device support
>    vhost-scsi      vhost-scsi kernel target support
>    vhost-crypto    vhost-user-crypto backend support
>    vhost-kernel    vhost kernel backend support
> @@ -1548,10 +1542,6 @@ test "$vhost_scsi" = "" && vhost_scsi=$vhost_kernel
>  if test "$vhost_scsi" = "yes" && test "$vhost_kernel" != "yes"; then
>    error_exit "--enable-vhost-scsi requires --enable-vhost-kernel"
>  fi
> -test "$vhost_vsock" = "" && vhost_vsock=$vhost_kernel
> -if test "$vhost_vsock" = "yes" && test "$vhost_kernel" != "yes"; then
> -  error_exit "--enable-vhost-vsock requires --enable-vhost-kernel"
> -fi
>
>  # vhost-user backends
>  test "$vhost_crypto" = "" && vhost_crypto=$vhost_user
> @@ -2104,12 +2094,6 @@ fi
>  if test "$vhost_crypto" = "yes" ; then
>    echo "CONFIG_VHOST_CRYPTO=y" >> $config_host_mak
>  fi
> -if test "$vhost_vsock" = "yes" ; then
> -  echo "CONFIG_VHOST_VSOCK=y" >> $config_host_mak
> -  if test "$vhost_user" = "yes" ; then
> -    echo "CONFIG_VHOST_USER_VSOCK=y" >> $config_host_mak
> -  fi
> -fi
>  if test "$vhost_kernel" = "yes" ; then
>    echo "CONFIG_VHOST_KERNEL=y" >> $config_host_mak
>  fi
> diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
> index c144d42f9b..b642ae1081 100644
> --- a/hw/virtio/Kconfig
> +++ b/hw/virtio/Kconfig
> @@ -59,6 +59,16 @@ config VIRTIO_MEM
>      depends on VIRTIO_MEM_SUPPORTED
>      select MEM_DEVICE
>
> +config VHOST_VSOCK
> +    bool
> +    default y
> +    depends on VIRTIO && VHOST_KERNEL
> +
> +config VHOST_USER_VSOCK
> +    bool
> +    default y
> +    depends on VIRTIO && VHOST_USER
> +
>  config VHOST_USER_I2C
>      bool
>      default y
> diff --git a/meson.build b/meson.build
> index ff5c076805..033d0c9aa1 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -3678,7 +3678,6 @@ summary_info += {'vhost-kernel support':
> config_host.has_key('CONFIG_VHOST_KERNE
>  summary_info += {'vhost-net support':
> config_host.has_key('CONFIG_VHOST_NET')}
>  summary_info += {'vhost-crypto support':
> config_host.has_key('CONFIG_VHOST_CRYPTO')}
>  summary_info += {'vhost-scsi support':
> config_host.has_key('CONFIG_VHOST_SCSI')}
> -summary_info += {'vhost-vsock support':
> config_host.has_key('CONFIG_VHOST_VSOCK')}
>  summary_info += {'vhost-user support':
> config_host.has_key('CONFIG_VHOST_USER')}
>  summary_info += {'vhost-user-blk server support':
> have_vhost_user_blk_server}
>  summary_info += {'vhost-user-fs support':
> config_host.has_key('CONFIG_VHOST_USER_FS')}
> --
> 2.35.1
>
>
>
>

-- 
Marc-André Lureau