On 02.03.2020 18:10, Eduardo Habkost wrote: > 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? >
I'm already mentioned as the NetBSD maintainer and NVMM is NetBSD-only (at least today). > > 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 >>>>> >>>>> >>>> >>> >> >