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 v5 2/4] Add the NetBSD Virtual Machine Monitor accelerator.
Date: Tue, 11 Aug 2020 14:47:32 +0200 [thread overview]
Message-ID: <20200811124734.17222-2-n54@gmx.com> (raw)
In-Reply-To: <20200811124734.17222-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 | 10 +++++-----
2 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/configure b/configure
index 2acc4d1465..fb9ffba2bf 100755
--- a/configure
+++ b/configure
@@ -246,6 +246,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)
@@ -273,6 +284,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
}
@@ -395,6 +407,7 @@ kvm="no"
hax="no"
hvf="no"
whpx="no"
+nvmm="no"
rdma=""
pvrdma=""
gprof="no"
@@ -847,6 +860,7 @@ DragonFly)
NetBSD)
bsd="yes"
hax="yes"
+ nvmm="yes"
make="${MAKE-gmake}"
audio_drv_list="oss try-sdl"
audio_possible_drivers="oss sdl"
@@ -1233,6 +1247,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"
@@ -1879,6 +1897,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
@@ -2965,6 +2984,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
@@ -6934,6 +6967,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"
@@ -8332,6 +8366,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 708583b4ce..697accaa7e 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -26,7 +26,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"
@@ -58,7 +58,7 @@ SRST
``accel=accels1[:accels2[:...]]``
This is used to enable an accelerator. Depending on the target
- architecture, kvm, xen, hax, hvf, whpx or tcg can be available.
+ architecture, 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.
@@ -119,7 +119,7 @@ ERST
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"
@@ -128,8 +128,8 @@ DEF("accel", HAS_ARG, QEMU_OPTION_accel,
SRST
``-accel name[,prop=value[,...]]``
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
+ architecture, 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.
--
2.24.1
next prev parent reply other threads:[~2020-08-11 14:27 UTC|newest]
Thread overview: 80+ 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 ` Kamil Rytarowski [this message]
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-08-11 14:10 [PATCH v5 1/4] Add the NVMM vcpu API Kamil Rytarowski
2020-08-11 14:10 ` [PATCH v5 2/4] Add the NetBSD Virtual Machine Monitor accelerator Kamil Rytarowski
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=20200811124734.17222-2-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).