qemu-devel.nongnu.org archive mirror
 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 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 \
    --subject='Re: [PATCH v8 0/4] Implements the NetBSD Virtual Machine Monitor accelerator' \
    /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

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).