mbox series

[0/4] Implements the NetBSD Virtual Machine Monitor accelerator

Message ID 20200107125401.18126-1-n54@gmx.com (mailing list archive)
Headers show
Series Implements the NetBSD Virtual Machine Monitor accelerator | expand

Message

Kamil Rytarowski Jan. 7, 2020, 12:53 p.m. UTC
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.

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                 |   36 ++
 cpus.c                    |   58 ++
 include/sysemu/hw_accel.h |   14 +
 include/sysemu/nvmm.h     |   35 ++
 qemu-options.hx           |    4 +-
 target/i386/Makefile.objs |    1 +
 target/i386/helper.c      |    2 +-
 target/i386/nvmm-all.c    | 1222 +++++++++++++++++++++++++++++++++++++
 10 files changed, 1413 insertions(+), 3 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.24.0

Comments

Kamil Rytarowski Jan. 15, 2020, 1:14 p.m. UTC | #1
Ping?

On 07.01.2020 13:53, 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.
> 
> 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                 |   36 ++
>  cpus.c                    |   58 ++
>  include/sysemu/hw_accel.h |   14 +
>  include/sysemu/nvmm.h     |   35 ++
>  qemu-options.hx           |    4 +-
>  target/i386/Makefile.objs |    1 +
>  target/i386/helper.c      |    2 +-
>  target/i386/nvmm-all.c    | 1222 +++++++++++++++++++++++++++++++++++++
>  10 files changed, 1413 insertions(+), 3 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.24.0
>
Kamil Rytarowski Jan. 27, 2020, 4:01 p.m. UTC | #2
Ping? 2x

On 15.01.2020 14:14, Kamil Rytarowski wrote:
> Ping?
> 
> On 07.01.2020 13:53, 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.
>>
>> 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                 |   36 ++
>>  cpus.c                    |   58 ++
>>  include/sysemu/hw_accel.h |   14 +
>>  include/sysemu/nvmm.h     |   35 ++
>>  qemu-options.hx           |    4 +-
>>  target/i386/Makefile.objs |    1 +
>>  target/i386/helper.c      |    2 +-
>>  target/i386/nvmm-all.c    | 1222 +++++++++++++++++++++++++++++++++++++
>>  10 files changed, 1413 insertions(+), 3 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.24.0
>>
> 
>
Sergio Lopez Jan. 28, 2020, 9:10 a.m. UTC | #3
On Tue, Jan 07, 2020 at 01:53:57PM +0100, 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.

Thank you for working on this, it's nice to see that QEMU will gain
HW-assisted acceleration on NetBSD 9.0. A couple things:

 - Are you and/or Maxime willing to step up as maintainers for the
   NVMM support in QEMU?

 - In the next version of the patch series, please use
   "scripts/get_maintainer.pl" to get the list of people you need to
   CC for the patch series.

Thanks,
Sergio.
Kamil Rytarowski Jan. 28, 2020, 11:11 a.m. UTC | #4
On 28.01.2020 10:10, Sergio Lopez wrote:
> On Tue, Jan 07, 2020 at 01:53:57PM +0100, 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.
> 
> Thank you for working on this, it's nice to see that QEMU will gain
> HW-assisted acceleration on NetBSD 9.0. A couple things:
> 

Thank you for the review!

>  - Are you and/or Maxime willing to step up as maintainers for the
>    NVMM support in QEMU?
> 

NVMM (as of today) is part of the NetBSD support and I am the maintainer
for the NetBSD code (noted in MAINTAINERS).

In case of non-trivial changes I will reach Maxime for his feedback.

>  - In the next version of the patch series, please use
>    "scripts/get_maintainer.pl" to get the list of people you need to
>    CC for the patch series.
> 

I've submitted a fixup patch '[PATCH v2 2/4] Add the NetBSD Virtual
Machine Monitor accelerator.' instead of the full series.

I have rechecked the maintainers with the patch and I don't see anybody
else as a candidate for review.

I don't maintain a merge queue on my own. Please put the reviewed
patches on a merge queue yourself.


Thank you in advance,

> Thanks,
> Sergio.
>
Sergio Lopez Jan. 28, 2020, 12:08 p.m. UTC | #5
On Tue, Jan 28, 2020 at 12:11:51PM +0100, Kamil Rytarowski wrote:
> On 28.01.2020 10:10, Sergio Lopez wrote:
> > On Tue, Jan 07, 2020 at 01:53:57PM +0100, 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.
> > 
> > Thank you for working on this, it's nice to see that QEMU will gain
> > HW-assisted acceleration on NetBSD 9.0. A couple things:
> > 
> 
> Thank you for the review!
> 
> >  - Are you and/or Maxime willing to step up as maintainers for the
> >    NVMM support in QEMU?
> > 
> 
> NVMM (as of today) is part of the NetBSD support and I am the maintainer
> for the NetBSD code (noted in MAINTAINERS).
> 
> In case of non-trivial changes I will reach Maxime for his feedback.

OK, sounds good to me.

> >  - In the next version of the patch series, please use
> >    "scripts/get_maintainer.pl" to get the list of people you need to
> >    CC for the patch series.
> > 
> 
> I've submitted a fixup patch '[PATCH v2 2/4] Add the NetBSD Virtual
> Machine Monitor accelerator.' instead of the full series.
> 
> I have rechecked the maintainers with the patch and I don't see anybody
> else as a candidate for review.

$ ./scripts/get_maintainer.pl /tmp/0004.patch 
Paolo Bonzini <pbonzini@redhat.com> (maintainer:Main loop)
Richard Henderson <rth@twiddle.net> (maintainer:Overall TCG CPUs)
Eduardo Habkost <ehabkost@redhat.com> (maintainer:X86 TCG CPUs)
qemu-devel@nongnu.org (open list:All patches CC here)

$ ./scripts/get_maintainer.pl /tmp/0002.patch 
get_maintainer.pl: No maintainers found, printing recent contributors.
get_maintainer.pl: Do not blindly cc: them on patches!  Use common sense.

"Philippe Mathieu-Daudé" <philmd@redhat.com> (commit_signer:31/112=28%)
Paolo Bonzini <pbonzini@redhat.com> (commit_signer:31/112=28%)
Thomas Huth <thuth@redhat.com> (commit_signer:25/112=22%,commit_signer:14/53=26%)
"Daniel P. Berrangé" <berrange@redhat.com> (commit_signer:24/112=21%)
Laurent Vivier <laurent@vivier.eu> (commit_signer:22/112=20%,commit_signer:10/53=19%)
Gerd Hoffmann <kraxel@redhat.com> (commit_signer:13/53=25%)
"Michael S. Tsirkin" <mst@redhat.com> (commit_signer:9/53=17%)
Markus Armbruster <armbru@redhat.com> (commit_signer:9/53=17%)
qemu-devel@nongnu.org (open list:All patches CC here)

I think you should resping the whole series as v2, adding Richard,
Eduardo and Philippe to the CC list. That should help with the review
process.

Thanks,
Sergio.

> I don't maintain a merge queue on my own. Please put the reviewed
> patches on a merge queue yourself.
> 
> 
> Thank you in advance,
> 
> > Thanks,
> > Sergio.
> > 
> 
>
Kamil Rytarowski Jan. 28, 2020, 12:12 p.m. UTC | #6
On 28.01.2020 13:08, Sergio Lopez wrote:
> On Tue, Jan 28, 2020 at 12:11:51PM +0100, Kamil Rytarowski wrote:
>> On 28.01.2020 10:10, Sergio Lopez wrote:
>>> On Tue, Jan 07, 2020 at 01:53:57PM +0100, 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.
>>>
>>> Thank you for working on this, it's nice to see that QEMU will gain
>>> HW-assisted acceleration on NetBSD 9.0. A couple things:
>>>
>>
>> Thank you for the review!
>>
>>>  - Are you and/or Maxime willing to step up as maintainers for the
>>>    NVMM support in QEMU?
>>>
>>
>> NVMM (as of today) is part of the NetBSD support and I am the maintainer
>> for the NetBSD code (noted in MAINTAINERS).
>>
>> In case of non-trivial changes I will reach Maxime for his feedback.
> 
> OK, sounds good to me.
> 
>>>  - In the next version of the patch series, please use
>>>    "scripts/get_maintainer.pl" to get the list of people you need to
>>>    CC for the patch series.
>>>
>>
>> I've submitted a fixup patch '[PATCH v2 2/4] Add the NetBSD Virtual
>> Machine Monitor accelerator.' instead of the full series.
>>
>> I have rechecked the maintainers with the patch and I don't see anybody
>> else as a candidate for review.
> 
> $ ./scripts/get_maintainer.pl /tmp/0004.patch 
> Paolo Bonzini <pbonzini@redhat.com> (maintainer:Main loop)
> Richard Henderson <rth@twiddle.net> (maintainer:Overall TCG CPUs)
> Eduardo Habkost <ehabkost@redhat.com> (maintainer:X86 TCG CPUs)
> qemu-devel@nongnu.org (open list:All patches CC here)
> 
> $ ./scripts/get_maintainer.pl /tmp/0002.patch 
> get_maintainer.pl: No maintainers found, printing recent contributors.
> get_maintainer.pl: Do not blindly cc: them on patches!  Use common sense.
> 
> "Philippe Mathieu-Daudé" <philmd@redhat.com> (commit_signer:31/112=28%)
> Paolo Bonzini <pbonzini@redhat.com> (commit_signer:31/112=28%)
> Thomas Huth <thuth@redhat.com> (commit_signer:25/112=22%,commit_signer:14/53=26%)
> "Daniel P. Berrangé" <berrange@redhat.com> (commit_signer:24/112=21%)
> Laurent Vivier <laurent@vivier.eu> (commit_signer:22/112=20%,commit_signer:10/53=19%)
> Gerd Hoffmann <kraxel@redhat.com> (commit_signer:13/53=25%)
> "Michael S. Tsirkin" <mst@redhat.com> (commit_signer:9/53=17%)
> Markus Armbruster <armbru@redhat.com> (commit_signer:9/53=17%)
> qemu-devel@nongnu.org (open list:All patches CC here)
> 
> I think you should resping the whole series as v2, adding Richard,
> Eduardo and Philippe to the CC list. That should help with the review
> process.
> 

OK. I will do it.

Please have a look at v2 2/4, submit reviewed-by and I will submit the
whole series again.

> Thanks,
> Sergio.
> 
>> I don't maintain a merge queue on my own. Please put the reviewed
>> patches on a merge queue yourself.
>>
>>
>> Thank you in advance,
>>
>>> Thanks,
>>> Sergio.
>>>
>>
>>
> 
> 
>