[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 0/4] Implements the NetBSD Virtual Machine Monitor acceler
From: |
Kamil Rytarowski |
Subject: |
Re: [PATCH v4 0/4] Implements the NetBSD Virtual Machine Monitor accelerator |
Date: |
Mon, 2 Mar 2020 18:10:50 +0100 |
User-agent: |
Mozilla/5.0 (X11; NetBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
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
>>>>>
>>>>>
>>>>
>>>
>>
>