qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Kamil Rytarowski <n54@gmx.com>,
	rth@twiddle.net, ehabkost@redhat.com, slp@redhat.com,
	pbonzini@redhat.com, peter.maydell@linaro.org, max@m00nbsd.net
Cc: qemu-devel@nongnu.org
Subject: Re: [PATCH v2 2/4] Add the NetBSD Virtual Machine Monitor accelerator.
Date: Mon, 3 Feb 2020 12:41:48 +0100	[thread overview]
Message-ID: <e3279b9d-e6f9-43f3-3ebb-b31ba8ff5f7e@redhat.com> (raw)
In-Reply-To: <20200128140945.929-3-n54@gmx.com>

On 1/28/20 3:09 PM, Kamil Rytarowski wrote:
> From: Maxime Villard <max@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 <max@m00nbsd.net>
> Signed-off-by: Kamil Rytarowski <n54@gmx.com>
> Reviewed-by: Sergio Lopez <slp@redhat.com>
> ---
>   configure       | 36 ++++++++++++++++++++++++++++++++++++
>   qemu-options.hx | 16 ++++++++--------
>   2 files changed, 44 insertions(+), 8 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
> 

Maybe you can add something like:

if test "$targetos" = "NetBSD"; then
     nvmm="check"
fi

to build by default with NVMM if available.

> +##########################################
> +# 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..4ddf7c91a0 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,9 +63,9 @@ 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
> -more than one accelerator specified, the next one is used if the previous one
> -fails to initialize.
> +kvm, xen, hax, hvf, nvmm, whpx or tcg can be available. By default, tcg is used.
> +If there is more than one accelerator specified, the next one is used if the
> +previous one fails to initialize.
>   @item vmport=on|off|auto
>   Enables emulation of VMWare IO port, for vmmouse etc. auto says to select the
>   value based on accel. For accel=xen the default is off otherwise the default
> @@ -110,7 +110,7 @@ ETEXI
> 
>   DEF("accel", HAS_ARG, QEMU_OPTION_accel,
>       "-accel [accel=]accelerator[,prop[=value][,...]]\n"
> -    "                select accelerator (kvm, xen, hax, hvf, whpx or tcg; use 'help' for a list)\n"
> +    "                select accelerator (kvm, xen, hax, hvf, nvmm, whpx or tcg; use 'help' for a list)\n"
>       "                igd-passthru=on|off (enable Xen integrated Intel graphics passthrough, default=off)\n"
>       "                kernel-irqchip=on|off|split controls accelerated irqchip support (default=on)\n"
>       "                kvm-shadow-mem=size of KVM shadow MMU in bytes\n"
> @@ -120,9 +120,9 @@ STEXI
>   @item -accel @var{name}[,prop=@var{value}[,...]]
>   @findex -accel
>   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
> -more than one accelerator specified, the next one is used if the previous one
> -fails to initialize.
> +kvm, xen, hax, hvf, nvmm, whpx or tcg can be available. By default, tcg is used.
> +If there is more than one accelerator specified, the next one is used if the
> +previous one fails to initialize.
>   @table @option
>   @item igd-passthru=on|off
>   When Xen is in use, this option controls whether Intel integrated graphics
> --
> 2.24.1
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>



  reply	other threads:[~2020-02-03 11:43 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200107124903.16505-1-n54@gmx.com>
2020-01-28 14:09 ` [PATCH v2 0/4] Implements the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-01-28 14:09   ` [PATCH v2 1/4] Add the NVMM vcpu API Kamil Rytarowski
2020-02-03 11:42     ` Philippe Mathieu-Daudé
2020-01-28 14:09   ` [PATCH v2 2/4] Add the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-02-03 11:41     ` Philippe Mathieu-Daudé [this message]
2020-02-03 11:56       ` Kamil Rytarowski
2020-02-03 12:10         ` Philippe Mathieu-Daudé
2020-03-02 17:12         ` Paolo Bonzini
2020-03-02 18:05           ` Kamil Rytarowski
2020-03-02 19:14             ` Maxime Villard
2020-03-02 19:40               ` Paolo Bonzini
2020-03-02 21:10                 ` Kamil Rytarowski
2020-03-02 22:45                   ` Paolo Bonzini
2020-03-02 17:11       ` Paolo Bonzini
2020-03-02 18:09         ` Kamil Rytarowski
2020-01-28 14:09   ` [PATCH v2 3/4] Introduce the NVMM impl Kamil Rytarowski
2020-02-03 11:51     ` Philippe Mathieu-Daudé
2020-02-05 17:22       ` Kamil Rytarowski
2020-02-05 17:47       ` Maxime Villard
2020-01-28 14:09   ` [PATCH v2 4/4] Add the NVMM acceleration enlightenments Kamil Rytarowski
2020-02-03 11:54     ` Philippe Mathieu-Daudé
2020-02-06 10:24       ` Kamil Rytarowski
2020-02-06 12:18         ` Philippe Mathieu-Daudé
2020-02-06 13:06         ` Markus Armbruster
2020-02-06 13:09           ` Philippe Mathieu-Daudé
2020-02-06 13:31             ` Kamil Rytarowski
2020-02-06 14:13               ` Markus Armbruster
2020-02-06 15:38                 ` Kamil Rytarowski
2020-02-06 16:07                   ` Philippe Mathieu-Daudé
2020-02-06 16:59                     ` Kamil Rytarowski
2020-02-03  9:52   ` [PATCH v2 0/4] Implements the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-02-06 11:57   ` [PATCH v3 " Kamil Rytarowski
2020-02-06 11:57     ` [PATCH v3 1/4] Add the NVMM vcpu API Kamil Rytarowski
2020-02-06 21:06       ` Jared McNeill
2020-02-06 11:57     ` [PATCH v3 2/4] Add the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-02-06 21:06       ` Jared McNeill
2020-02-06 11:57     ` [PATCH v3 3/4] Introduce the NVMM impl Kamil Rytarowski
2020-02-06 21:07       ` Jared McNeill
2020-02-06 11:57     ` [PATCH v3 4/4] Add the NVMM acceleration enlightenments Kamil Rytarowski
2020-02-06 21:07       ` Jared McNeill
2020-02-06 13:13     ` [PATCH v3 0/4] Implements the NetBSD Virtual Machine Monitor accelerator no-reply
2020-02-06 13:21       ` Kamil Rytarowski
2020-02-06 16:01         ` Philippe Mathieu-Daudé
2020-02-06 21:32     ` [PATCH v4 " Kamil Rytarowski
2020-02-06 21:32       ` [PATCH v4 1/4] Add the NVMM vcpu API Kamil Rytarowski
2020-08-11 12:47         ` [PATCH v5 " Kamil Rytarowski
2020-08-11 12:47           ` [PATCH v5 2/4] Add the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-08-11 12:47           ` [PATCH v5 3/4] Introduce the NVMM impl Kamil Rytarowski
2020-08-11 12:47           ` [PATCH v5 4/4] Add the NVMM acceleration enlightenments Kamil Rytarowski
2020-08-11 13:01         ` [PATCH v5 1/4] Add the NVMM vcpu API Kamil Rytarowski
2020-08-11 13:01           ` [PATCH v5 2/4] Add the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-08-11 13:01           ` [PATCH v5 3/4] Introduce the NVMM impl Kamil Rytarowski
2020-08-11 13:01           ` [PATCH v5 4/4] Add the NVMM acceleration enlightenments Kamil Rytarowski
2020-09-04 23:28           ` [PATCH v5 1/4] Add the NVMM vcpu API Kamil Rytarowski
2020-02-06 21:32       ` [PATCH v4 2/4] Add the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-02-06 21:32       ` [PATCH v4 3/4] Introduce the NVMM impl Kamil Rytarowski
2020-02-06 23:28         ` [PATCH v4 3/4 FIXUP] " Kamil Rytarowski
2020-03-02 18:13         ` [PATCH v4 3/4] " Paolo Bonzini
2020-03-02 19:28           ` Maxime Villard
2020-03-02 19:35             ` Paolo Bonzini
2020-03-10  6:45               ` Maxime Villard
2020-03-10 10:15                 ` Kamil Rytarowski
2020-03-10 10:58                 ` Paolo Bonzini
2020-03-10 19:14                   ` Maxime Villard
2020-03-11 18:03                     ` Paolo Bonzini
2020-03-11 20:14                       ` Maxime Villard
2020-03-11 20:42                         ` Paolo Bonzini
2020-03-11 21:21                           ` Maxime Villard
2020-03-11 21:22                             ` Kamil Rytarowski
2020-03-11 21:44                             ` Paolo Bonzini
2020-03-12  7:08                               ` Maxime Villard
2020-07-21 13:42                 ` Kamil Rytarowski
2020-02-06 21:32       ` [PATCH v4 4/4] Add the NVMM acceleration enlightenments Kamil Rytarowski
2020-02-17  9:07       ` [PATCH v4 0/4] Implements the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
2020-02-24 15:17         ` Kamil Rytarowski
2020-03-02 17:02           ` Kamil Rytarowski
2020-03-02 17:10             ` Eduardo Habkost
2020-03-02 17:10               ` Kamil Rytarowski
2020-03-02 17:22                 ` Eduardo Habkost
2020-01-28  8:54 [PATCH 2/4] Add " Sergio Lopez
2020-01-28 10:51 ` [PATCH v2 " Kamil Rytarowski
2020-01-28 13:20   ` Sergio Lopez

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=e3279b9d-e6f9-43f3-3ebb-b31ba8ff5f7e@redhat.com \
    --to=philmd@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=max@m00nbsd.net \
    --cc=n54@gmx.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=slp@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).