All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.