qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v8 0/4] Implements the NetBSD Virtual Machine Monitor acceler


From: Reinoud Zandijk
Subject: Re: [PATCH v8 0/4] Implements the NetBSD Virtual Machine Monitor accelerator
Date: Sat, 8 May 2021 16:27:43 +0200

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]