Message ID | 20200206213232.1918-1-n54@gmx.com (mailing list archive) |
---|---|
Headers | show |
Series | Implements the NetBSD Virtual Machine Monitor accelerator | expand |
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 > >
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 >> >> >
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 >>> >>> >> >
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 > >>> > >>> > >> > > >
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 >>>>> >>>>> >>>> >>> >> >
On Mon, Mar 02, 2020 at 06:10:50PM +0100, Kamil Rytarowski wrote: > 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). I don't see the new files (accel/stubs/nvmm-stub.c, include/sysemu/nvmm.h, target/i386/nvmm-all.c) being added to MAINTAINERS. Can you add it as a follow up patch?