From: Kamil Rytarowski <n54@gmx.com>
To: rth@twiddle.net, ehabkost@redhat.com, slp@redhat.com,
pbonzini@redhat.com, peter.maydell@linaro.org, philmd@redhat.com,
max@m00nbsd.net, jmcneill@invisible.ca
Cc: Kamil Rytarowski <n54@gmx.com>, qemu-devel@nongnu.org
Subject: [PATCH v4 2/4] Add the NetBSD Virtual Machine Monitor accelerator.
Date: Thu, 6 Feb 2020 22:32:30 +0100 [thread overview]
Message-ID: <20200206213232.1918-3-n54@gmx.com> (raw)
In-Reply-To: <20200206213232.1918-1-n54@gmx.com>
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>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Jared McNeill <jmcneill@invisible.ca>
---
configure | 37 +++++++++++++++++++++++++++++++++++++
qemu-options.hx | 16 ++++++++--------
2 files changed, 45 insertions(+), 8 deletions(-)
diff --git a/configure b/configure
index 115dc38085..d4a837cf9d 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
}
@@ -388,6 +400,7 @@ kvm="no"
hax="no"
hvf="no"
whpx="no"
+nvmm="no"
rdma=""
pvrdma=""
gprof="no"
@@ -823,6 +836,7 @@ DragonFly)
NetBSD)
bsd="yes"
hax="yes"
+ nvmm="yes"
make="${MAKE-gmake}"
audio_drv_list="oss try-sdl"
audio_possible_drivers="oss sdl"
@@ -1169,6 +1183,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"
@@ -1773,6 +1791,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
@@ -2764,6 +2783,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
@@ -6543,6 +6576,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"
@@ -7828,6 +7862,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 224a8e8712..10c046c916 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"
@@ -64,9 +64,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
@@ -114,7 +114,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"
@@ -124,9 +124,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.25.0
next prev parent reply other threads:[~2020-02-06 21:53 UTC|newest]
Thread overview: 79+ 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é
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 ` Kamil Rytarowski [this message]
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
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=20200206213232.1918-3-n54@gmx.com \
--to=n54@gmx.com \
--cc=ehabkost@redhat.com \
--cc=jmcneill@invisible.ca \
--cc=max@m00nbsd.net \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--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).