From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "Stefan Hajnoczi" <stefanha@redhat.com>,
"Stefan Hajnoczi" <stefanha@gmail.com>,
"Nikos Dragazis" <ndragazis@arrikto.com>,
"Jan Kiszka" <jan.kiszka@siemens.com>,
"John G. Johnson" <john.g.johnson@oracle.com>,
"Andra-Irina Paraschiv" <andraprs@amazon.com>,
kvm <kvm@vger.kernel.org>, qemu-devel <qemu-devel@nongnu.org>,
"Maxime Coquelin" <maxime.coquelin@redhat.com>,
"Alexander Graf" <graf@amazon.com>,
"Thanos Makatos" <thanos.makatos@nutanix.com>,
"Jag Raman" <jag.raman@oracle.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Jean-Philippe Brucker" <jean-philippe@linaro.org>,
"Eric Auger" <eric.auger@redhat.com>
Subject: Re: Inter-VM device emulation (call on Mon 20th July 2020)
Date: Mon, 27 Jul 2020 13:22:29 +0100 [thread overview]
Message-ID: <87eeox406y.fsf@linaro.org> (raw)
In-Reply-To: <20200727073311-mutt-send-email-mst@kernel.org>
Michael S. Tsirkin <mst@redhat.com> writes:
> On Mon, Jul 27, 2020 at 11:30:24AM +0100, Alex Bennée wrote:
>>
>> Stefan Hajnoczi <stefanha@redhat.com> writes:
>>
>> > On Tue, Jul 21, 2020 at 11:49:04AM +0100, Alex Bennée wrote:
>> >> Stefan Hajnoczi <stefanha@gmail.com> writes:
<snip>
>> >> Another thing that came across in the call was quite a lot of
>> >> assumptions about QEMU and Linux w.r.t virtio. While our project will
>> >> likely have Linux as a guest OS we are looking specifically at enabling
>> >> virtio for Type-1 hypervisors like Xen and the various safety certified
>> >> proprietary ones. It is unlikely that QEMU would be used as the VMM for
>> >> these deployments. We want to work out what sort of common facilities
>> >> hypervisors need to support to enable virtio so the daemons can be
>> >> re-usable and maybe setup with a minimal shim for the particular
>> >> hypervisor in question.
>> >
>> > The vhost-user protocol together with the backend program conventions
>> > define the wire protocol and command-line interface (see
>> > docs/interop/vhost-user.rst).
>> >
>> > vhost-user is already used by other VMMs today. For example,
>> > cloud-hypervisor implements vhost-user.
>>
>> Ohh that's a new one for me. I see it is a KVM only project but it's
>> nice to see another VMM using the common rust-vmm backend. There is
>> interest in using rust-vmm to implement VMMs for type-1 hypervisors but
>> we need to work out if there are two many type-2 concepts backed into
>> the lower level rust crates.
>>
>> > I'm sure there is room for improvement, but it seems like an incremental
>> > step given that vhost-user already tries to cater for this scenario.
>> >
>> > Are there any specific gaps you have identified?
>>
>> Aside from the desire to limit the shared memory footprint between the
>> backend daemon and a guest not yet.
>
> So it's certainly nice for security but not really a requirement for a
> type-1 HV, right?
Not a requirement per-se but type-1 setups don't assume a "one userspace
to rule them all" approach.
>> I suspect the eventfd mechanism might just end up being simulated by the
>> VMM as a result of whatever comes from the type-1 interface indicating a
>> doorbell has been rung. It is after all just a FD you consume numbers
>> over right?
>
> Does not even have to be numbers. We need a way to be woken up, a way to
> stop/start listening for wakeups and a way to detect that there was a
> wakeup while we were not listening.
>
> Though there are special tricks for offloads where we poke through
> layers in order to map things directly to hardware.
>
>> Not all setups will have an equivalent of a Dom0 "master" guest to do
>> orchestration. Highly embedded are likely to have fixed domains created
>> as the firmware/hypervisor start up.
>>
>> >
>> > Stefan
>>
>>
>> --
>> Alex Bennée
--
Alex Bennée
WARNING: multiple messages have this Message-ID (diff)
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "John G. Johnson" <john.g.johnson@oracle.com>,
"Jag Raman" <jag.raman@oracle.com>,
"Andra-Irina Paraschiv" <andraprs@amazon.com>,
kvm <kvm@vger.kernel.org>,
"Jean-Philippe Brucker" <jean-philippe@linaro.org>,
"Stefan Hajnoczi" <stefanha@gmail.com>,
qemu-devel <qemu-devel@nongnu.org>,
"Eric Auger" <eric.auger@redhat.com>,
"Maxime Coquelin" <maxime.coquelin@redhat.com>,
"Alexander Graf" <graf@amazon.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Jan Kiszka" <jan.kiszka@siemens.com>,
"Thanos Makatos" <thanos.makatos@nutanix.com>,
"Nikos Dragazis" <ndragazis@arrikto.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: Re: Inter-VM device emulation (call on Mon 20th July 2020)
Date: Mon, 27 Jul 2020 13:22:29 +0100 [thread overview]
Message-ID: <87eeox406y.fsf@linaro.org> (raw)
In-Reply-To: <20200727073311-mutt-send-email-mst@kernel.org>
Michael S. Tsirkin <mst@redhat.com> writes:
> On Mon, Jul 27, 2020 at 11:30:24AM +0100, Alex Bennée wrote:
>>
>> Stefan Hajnoczi <stefanha@redhat.com> writes:
>>
>> > On Tue, Jul 21, 2020 at 11:49:04AM +0100, Alex Bennée wrote:
>> >> Stefan Hajnoczi <stefanha@gmail.com> writes:
<snip>
>> >> Another thing that came across in the call was quite a lot of
>> >> assumptions about QEMU and Linux w.r.t virtio. While our project will
>> >> likely have Linux as a guest OS we are looking specifically at enabling
>> >> virtio for Type-1 hypervisors like Xen and the various safety certified
>> >> proprietary ones. It is unlikely that QEMU would be used as the VMM for
>> >> these deployments. We want to work out what sort of common facilities
>> >> hypervisors need to support to enable virtio so the daemons can be
>> >> re-usable and maybe setup with a minimal shim for the particular
>> >> hypervisor in question.
>> >
>> > The vhost-user protocol together with the backend program conventions
>> > define the wire protocol and command-line interface (see
>> > docs/interop/vhost-user.rst).
>> >
>> > vhost-user is already used by other VMMs today. For example,
>> > cloud-hypervisor implements vhost-user.
>>
>> Ohh that's a new one for me. I see it is a KVM only project but it's
>> nice to see another VMM using the common rust-vmm backend. There is
>> interest in using rust-vmm to implement VMMs for type-1 hypervisors but
>> we need to work out if there are two many type-2 concepts backed into
>> the lower level rust crates.
>>
>> > I'm sure there is room for improvement, but it seems like an incremental
>> > step given that vhost-user already tries to cater for this scenario.
>> >
>> > Are there any specific gaps you have identified?
>>
>> Aside from the desire to limit the shared memory footprint between the
>> backend daemon and a guest not yet.
>
> So it's certainly nice for security but not really a requirement for a
> type-1 HV, right?
Not a requirement per-se but type-1 setups don't assume a "one userspace
to rule them all" approach.
>> I suspect the eventfd mechanism might just end up being simulated by the
>> VMM as a result of whatever comes from the type-1 interface indicating a
>> doorbell has been rung. It is after all just a FD you consume numbers
>> over right?
>
> Does not even have to be numbers. We need a way to be woken up, a way to
> stop/start listening for wakeups and a way to detect that there was a
> wakeup while we were not listening.
>
> Though there are special tricks for offloads where we poke through
> layers in order to map things directly to hardware.
>
>> Not all setups will have an equivalent of a Dom0 "master" guest to do
>> orchestration. Highly embedded are likely to have fixed domains created
>> as the firmware/hypervisor start up.
>>
>> >
>> > Stefan
>>
>>
>> --
>> Alex Bennée
--
Alex Bennée
next prev parent reply other threads:[~2020-07-27 12:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <86d42090-f042-06a1-efba-d46d449df280@arrikto.com>
2020-07-15 11:23 ` Inter-VM device emulation (call on Mon 20th July 2020) Stefan Hajnoczi
2020-07-15 11:23 ` Stefan Hajnoczi
2020-07-15 11:28 ` Jan Kiszka
2020-07-15 11:28 ` Jan Kiszka
2020-07-15 15:38 ` Stefan Hajnoczi
2020-07-15 15:38 ` Stefan Hajnoczi
2020-07-15 16:44 ` Alex Bennée
2020-07-15 16:44 ` Alex Bennée
2020-07-17 8:58 ` Nikos Dragazis
2020-07-17 17:10 ` Stefan Hajnoczi
2020-07-17 17:10 ` Stefan Hajnoczi
2020-07-15 16:20 ` Thanos Makatos
2020-07-15 16:20 ` Thanos Makatos
2020-07-20 17:11 ` Stefan Hajnoczi
2020-07-20 17:11 ` Stefan Hajnoczi
2020-07-21 10:49 ` Alex Bennée
2020-07-21 10:49 ` Alex Bennée
2020-07-21 19:08 ` Jan Kiszka
2020-07-21 19:08 ` Jan Kiszka
2020-07-27 10:14 ` Stefan Hajnoczi
2020-07-27 10:14 ` Stefan Hajnoczi
2020-07-27 10:30 ` Alex Bennée
2020-07-27 10:30 ` Alex Bennée
2020-07-27 11:37 ` Michael S. Tsirkin
2020-07-27 11:37 ` Michael S. Tsirkin
2020-07-27 12:22 ` Alex Bennée [this message]
2020-07-27 12:22 ` Alex Bennée
2020-07-27 11:52 ` Jean-Philippe Brucker
2020-07-27 11:52 ` Jean-Philippe Brucker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87eeox406y.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=andraprs@amazon.com \
--cc=eric.auger@redhat.com \
--cc=graf@amazon.com \
--cc=jag.raman@oracle.com \
--cc=jan.kiszka@siemens.com \
--cc=jean-philippe@linaro.org \
--cc=john.g.johnson@oracle.com \
--cc=kvm@vger.kernel.org \
--cc=maxime.coquelin@redhat.com \
--cc=mst@redhat.com \
--cc=ndragazis@arrikto.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=stefanha@redhat.com \
--cc=thanos.makatos@nutanix.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.