[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/4] Implements the NetBSD Virtual Machine Monitor accelerator
From: |
Kamil Rytarowski |
Subject: |
[PATCH v2 0/4] Implements the NetBSD Virtual Machine Monitor accelerator |
Date: |
Tue, 28 Jan 2020 15:09:41 +0100 |
Hello QEMU Community!
Over the past year the NetBSD team has been working hard on a new user-mode API
for our hypervisor that will be released as part of the upcoming NetBSD 9.0.
This new API 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 passing the --enable-nvmm flag will compile the
accelerator for use. 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.
Thank you for your feedback.
Refrences:
https://m00nbsd.net/4e0798b7f2620c965d0dd9d6a7a2f296.html
Test plan:
1. Download a NetBSD 9.0 pre-release snapshot:
http://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-9/latest/images/NetBSD-9.0_RC1-amd64.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://www.ki.nu/pkgsrc/packages/current/NetBSD-9.0_RC1/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:
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
Maxime Villard (4):
Add the NVMM vcpu API
Add the NetBSD Virtual Machine Monitor accelerator.
Introduce the NVMM impl
Add the NVMM acceleration enlightenments
accel/stubs/Makefile.objs | 1 +
accel/stubs/nvmm-stub.c | 43 ++
configure | 36 ++
cpus.c | 58 ++
include/sysemu/hw_accel.h | 14 +
include/sysemu/nvmm.h | 35 ++
qemu-options.hx | 16 +-
target/i386/Makefile.objs | 1 +
target/i386/helper.c | 2 +-
target/i386/nvmm-all.c | 1222 +++++++++++++++++++++++++++++++++++++
10 files changed, 1419 insertions(+), 9 deletions(-)
create mode 100644 accel/stubs/nvmm-stub.c
create mode 100644 include/sysemu/nvmm.h
create mode 100644 target/i386/nvmm-all.c
--
2.24.1
- [PATCH v2 0/4] Implements the NetBSD Virtual Machine Monitor accelerator,
Kamil Rytarowski <=