From: Reinoud Zandijk <reinoud@NetBSD.org>
To: Reinoud Zandijk <reinoud@NetBSD.org>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
qemu-devel@nongnu.org, Kamil Rytarowski <kamil@NetBSD.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Ryo ONODERA <ryoon@netbsd.org>
Subject: Re: [PATCH v8 0/4] Implements the NetBSD Virtual Machine Monitor accelerator
Date: Sat, 8 May 2021 16:27:43 +0200 [thread overview]
Message-ID: <YJaf3+2gzM7K0m2Q@dropje.13thmonkey.org> (raw)
In-Reply-To: <20210407161631.1780-1-reinoud@NetBSD.org>
ping?
On Wed, Apr 07, 2021 at 04:16:27PM +0000, Reinoud Zandijk wrote:
> The NetBSD team has implemented its new hypervisor called NVMM. It has been
> included since NetBSD 9.0 and has been in use now for quite some time. NVMM
> adds user-mode capabilities to create and manage virtual machines, configure
> memory mappings for guest machines, and create and control execution of
> virtual processors.
>
> With this new API we are now able to bring our hypervisor to the QEMU
> community! The following patches implement the NetBSD Virtual Machine Monitor
> accelerator (NVMM) for QEMU on NetBSD 9.0 and newer hosts.
>
> When compiling QEMU for x86_64 it will autodetect nvmm and will compile the
> accelerator for use if found. At runtime using the '-accel nvmm' should see a
> significant performance improvement over emulation, much like when using 'hax'
> on NetBSD.
>
> The documentation for this new API is visible at https://man.netbsd.org under
> the libnvmm(3) and nvmm(4) pages.
>
> NVMM was designed and implemented by Maxime Villard <max@m00nbsd.net>
>
> Thank you for your feedback.
>
> Refrences:
> https://m00nbsd.net/4e0798b7f2620c965d0dd9d6a7a2f296.html
>
>
> Test plan:
>
> 1. Download a NetBSD 9.1 release:
> http://cdn.netbsd.org/pub/NetBSD/NetBSD-9.1/amd64/installation/cdrom/boot.iso
>
> 2. Install it natively on a not too old x86_64 hardware (Intel or AMD).
>
> There is no support for nested virtualization in NVMM.
>
> 3. Setup the system.
>
> export PKG_PATH=http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/9.0/All/
> pkg_add git gmake python37 glib2 bison pkgconf pixman
>
> Install mozilla-rootcerts and follow post-install instructions.
>
> pkg_add mozilla-rootcerts
>
> More information: https://wiki.qemu.org/Hosts/BSD#NetBSD
>
> 4. Build qemu
>
> mkdir build
> cd build
> ../configure --python=python3.7
> gmake
> gmake check
>
> 5. Test
>
> qemu -accel nvmm ...
>
> History:
> v7 -> v8:
> - Minor fixup in target/i386/nvmm/meson.build
> v6 -> v7:
> - Remove small patches from pkgsrc that krept in
> - Enhance the possible race on exit fix
> - update the build system to only link the nvmm library for targets that
> support NVMM
> v5 -> v6:
> - Ported to updated Qemu 6.0 build system, reshuffeling and refactoring
> - Improved auto detection
> - Added support for improved NVMM interface fixing feedback on the use of
> signals
> v4 -> v5:
> - Mainly cosmetic
> - Automatic detection
> v3 -> v4:
> - Correct build warning by adding a missing include
> - Do not set R8-R16 registers unless TARGET_X86_64
> v2 -> v3:
> - Register nvmm in targetos NetBSD check
> - Stop including hw/boards.h
> - Rephrase old code comments (remove XXX)
> v1 -> v2:
> - Included the testing plan as requested by Philippe Mathieu-Daude
> - Formatting nit fix in qemu-options.hx
> - Document NVMM in the accel section of qemu-options.hx
>
>
> Signed-off-by: Kamil Rytarowski <kamil@NetBSD.org>
> Signed-off-by: Reinoud Zandijk <reinoud@NetBSD.org>
>
>
> Reinoud Zandijk (4):
> Add NVMM accelerator: configure and build logic
> Add NVMM accelerator: x86 CPU support
> Add NVMM accelerator: acceleration enlightenments
> Add NVMM Accelerator: add maintainers for NetBSD/NVMM
>
> MAINTAINERS | 11 +
> accel/Kconfig | 3 +
> configure | 8 +-
> include/sysemu/hw_accel.h | 1 +
> include/sysemu/nvmm.h | 26 +
> meson.build | 14 +
> meson_options.txt | 2 +
> qemu-options.hx | 8 +-
> target/i386/helper.c | 2 +-
> target/i386/meson.build | 1 +
> target/i386/nvmm/meson.build | 8 +
> target/i386/nvmm/nvmm-accel-ops.c | 111 +++
> target/i386/nvmm/nvmm-accel-ops.h | 24 +
> target/i386/nvmm/nvmm-all.c | 1226 +++++++++++++++++++++++++++++
> 14 files changed, 1439 insertions(+), 6 deletions(-)
> create mode 100644 include/sysemu/nvmm.h
> create mode 100644 target/i386/nvmm/meson.build
> create mode 100644 target/i386/nvmm/nvmm-accel-ops.c
> create mode 100644 target/i386/nvmm/nvmm-accel-ops.h
> create mode 100644 target/i386/nvmm/nvmm-all.c
>
> --
> 2.31.1
next prev parent reply other threads:[~2021-05-08 14:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-07 16:16 [PATCH v8 0/4] Implements the NetBSD Virtual Machine Monitor accelerator Reinoud Zandijk
2021-04-07 16:16 ` [PATCH v8 1/4] Add NVMM accelerator: configure and build logic Reinoud Zandijk
2021-04-07 16:16 ` [PATCH v8 2/4] Add NVMM accelerator: x86 CPU support Reinoud Zandijk
2021-04-07 16:16 ` [PATCH v8 3/4] Add NVMM accelerator: acceleration enlightenments Reinoud Zandijk
2021-04-07 16:16 ` [PATCH v8 4/4] Add NVMM Accelerator: add maintainers for NetBSD/NVMM Reinoud Zandijk
2021-05-08 14:27 ` Reinoud Zandijk [this message]
2021-05-09 7:56 ` [PATCH v8 0/4] Implements the NetBSD Virtual Machine Monitor accelerator Philippe Mathieu-Daudé
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=YJaf3+2gzM7K0m2Q@dropje.13thmonkey.org \
--to=reinoud@netbsd.org \
--cc=ehabkost@redhat.com \
--cc=kamil@NetBSD.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=ryoon@netbsd.org \
/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).