Hi Kamil, Maxime, I haven't managed to reserve time to review this, sorry for that. I hope others can chime in before I do.
Would any of you be willing to be included as maintainer of the new code on MAINTAINERS? On Mon, Mar 02, 2020 at 06:02:18PM +0100, Kamil Rytarowski wrote: > Ping? > > On 24.02.2020 16:17, Kamil Rytarowski wrote: > > Ping? > > > > On 17.02.2020 10:07, Kamil Rytarowski wrote: > >> Ping? > >> > >> On 06.02.2020 22:32, Kamil Rytarowski wrote: > >>> 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: > >>> 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 > >>> > >>> 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 | 37 ++ > >>> 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 | 1226 +++++++++++++++++++++++++++++++++++++ > >>> 10 files changed, 1424 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.25.0 > >>> > >>> > >> > > > -- Eduardo