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 <m...@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 <ka...@netbsd.org>
> Signed-off-by: Reinoud Zandijk <rein...@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