On Tue, Jan 07, 2020 at 01:53:59PM +0100, Kamil Rytarowski wrote:
> From: Maxime Villard <m...@m00nbsd.net>
> 
> Introduces the configure support for the new NetBSD Virtual Machine Monitor 
> that
> allows for hypervisor acceleration from usermode components on the NetBSD
> platform.
> 
> Signed-off-by: Maxime Villard <m...@m00nbsd.net>
> Signed-off-by: Kamil Rytarowski <n...@gmx.com>
> ---
>  configure       | 36 ++++++++++++++++++++++++++++++++++++
>  qemu-options.hx |  4 ++--
>  2 files changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 0ce2c0354a..eb456a271e 100755
> --- a/configure
> +++ b/configure
> @@ -241,6 +241,17 @@ supported_whpx_target() {
>      return 1
>  }
> 
> +supported_nvmm_target() {
> +    test "$nvmm" = "yes" || return 1
> +    glob "$1" "*-softmmu" || return 1
> +    case "${1%-softmmu}" in
> +        i386|x86_64)
> +            return 0
> +        ;;
> +    esac
> +    return 1
> +}
> +
>  supported_target() {
>      case "$1" in
>          *-softmmu)
> @@ -268,6 +279,7 @@ supported_target() {
>      supported_hax_target "$1" && return 0
>      supported_hvf_target "$1" && return 0
>      supported_whpx_target "$1" && return 0
> +    supported_nvmm_target "$1" && return 0
>      print_error "TCG disabled, but hardware accelerator not available for 
> '$target'"
>      return 1
>  }
> @@ -387,6 +399,7 @@ kvm="no"
>  hax="no"
>  hvf="no"
>  whpx="no"
> +nvmm="no"
>  rdma=""
>  pvrdma=""
>  gprof="no"
> @@ -1168,6 +1181,10 @@ for opt do
>    ;;
>    --enable-whpx) whpx="yes"
>    ;;
> +  --disable-nvmm) nvmm="no"
> +  ;;
> +  --enable-nvmm) nvmm="yes"
> +  ;;
>    --disable-tcg-interpreter) tcg_interpreter="no"
>    ;;
>    --enable-tcg-interpreter) tcg_interpreter="yes"
> @@ -1768,6 +1785,7 @@ disabled with --disable-FEATURE, default is enabled if 
> available:
>    hax             HAX acceleration support
>    hvf             Hypervisor.framework acceleration support
>    whpx            Windows Hypervisor Platform acceleration support
> +  nvmm            NetBSD Virtual Machine Monitor acceleration support
>    rdma            Enable RDMA-based migration
>    pvrdma          Enable PVRDMA support
>    vde             support for vde network
> @@ -2757,6 +2775,20 @@ if test "$whpx" != "no" ; then
>      fi
>  fi
> 
> +##########################################
> +# NetBSD Virtual Machine Monitor (NVMM) accelerator check
> +if test "$nvmm" != "no" ; then
> +    if check_include "nvmm.h" ; then
> +        nvmm="yes"
> +     LIBS="-lnvmm $LIBS"
> +    else
> +        if test "$nvmm" = "yes"; then
> +            feature_not_found "NVMM" "NVMM is not available"
> +        fi
> +        nvmm="no"
> +    fi
> +fi
> +
>  ##########################################
>  # Sparse probe
>  if test "$sparse" != "no" ; then
> @@ -6495,6 +6527,7 @@ echo "KVM support       $kvm"
>  echo "HAX support       $hax"
>  echo "HVF support       $hvf"
>  echo "WHPX support      $whpx"
> +echo "NVMM support      $nvmm"
>  echo "TCG support       $tcg"
>  if test "$tcg" = "yes" ; then
>      echo "TCG debug enabled $debug_tcg"
> @@ -7771,6 +7804,9 @@ fi
>  if test "$target_aligned_only" = "yes" ; then
>    echo "TARGET_ALIGNED_ONLY=y" >> $config_target_mak
>  fi
> +if supported_nvmm_target $target; then
> +    echo "CONFIG_NVMM=y" >> $config_target_mak
> +fi
>  if test "$target_bigendian" = "yes" ; then
>    echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
>  fi
> diff --git a/qemu-options.hx b/qemu-options.hx
> index e9d6231438..f2dbac68ef 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -31,7 +31,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
>      "-machine [type=]name[,prop[=value][,...]]\n"
>      "                selects emulated machine ('-machine help' for list)\n"
>      "                property accel=accel1[:accel2[:...]] selects 
> accelerator\n"
> -    "                supported accelerators are kvm, xen, hax, hvf, whpx or 
> tcg (default: tcg)\n"
> +    "                supported accelerators are kvm, xen, hax, hvf, nvmm, 
> whpx or tcg (default: tcg)\n"
>      "                vmport=on|off|auto controls emulation of vmport 
> (default: auto)\n"
>      "                dump-guest-core=on|off include guest memory in a core 
> dump (default=on)\n"
>      "                mem-merge=on|off controls memory merge support 
> (default: on)\n"
> @@ -63,7 +63,7 @@ Supported machine properties are:
>  @table @option
>  @item accel=@var{accels1}[:@var{accels2}[:...]]
>  This is used to enable an accelerator. Depending on the target architecture,
> -kvm, xen, hax, hvf, whpx or tcg can be available. By default, tcg is used. 
> If there is
> +kvm, xen, hax, hvf, nvmm, whpx or tcg can be available. By default, tcg is 
> used. If there is

Nitpick, but I think it'd be better to end the line at "tcg is used."
and rearrange the paragraph, to avoid such a long line.

>  more than one accelerator specified, the next one is used if the previous one
>  fails to initialize.
>  @item vmport=on|off|auto

Please update the section for "accel" option too.

Sergio.

Attachment: signature.asc
Description: PGP signature

Reply via email to