From: Demi Marie Obenour <demiobenour@gmail.com>
To: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
Parav Pandit <parav@nvidia.com>, Alyssa Ross <hi@alyssa.is>,
Rob Bradford <rbradford@meta.com>, Bo Chen <bchen@crusoe.ai>,
"dev@lists.cloudhypervisor.org" <dev@lists.cloudhypervisor.org>,
Spectrum OS Development <devel@spectrum-os.org>
Cc: "virtio-comment@lists.linux.dev" <virtio-comment@lists.linux.dev>
Subject: Vhost-guest (was virtio vhost-user) vs virtio-msg
Date: Thu, 28 May 2026 02:59:13 -0400 [thread overview]
Message-ID: <4ba67246-3a2b-43ee-b827-000c16ff07ed@gmail.com> (raw)
In-Reply-To: <CAAjaMXYGMTok_a2CJK8aKSqbTbgLx1CbkCVZw2VnZdJVuPJ38w@mail.gmail.com>
[-- Attachment #1.1.1: Type: text/plain, Size: 3195 bytes --]
On 5/28/26 01:47, Manos Pitsidianakis wrote:
> On Thu, May 28, 2026 at 8:22 AM Parav Pandit <parav@nvidia.com> wrote:
>>
>>
>>> From: Demi Marie Obenour <demiobenour@gmail.com>
>>> Sent: 28 May 2026 05:23 AM
>>> To: virtio-comment@lists.linux.dev
>>> Subject: MSI-X vector limits and reserving a virtio device ID
>>>
>>> I'd like to reserve a virtio device ID for virtio vhost-guest,
>>> formally virtio vhost-user. Would this be possible?
>>>
>> Vhost user is an implementation of the device.
>> I believe it stays as implementation and not a new device type.
>
> This exactly.
>
> Furthermore, we already have a mechanism for "providing" an arbitrary
> virtio device; it's called a transport.
>
> Demi, I suggest you look into virtio-msg transport, which would allow
> you to do what you want.
I'm aware of virtio-msg, and in fact considered using it. However, I
found that virtio-msg doesn't meet my requirements.
1. Virtio-msg needs to run over a transport of its own. None of the
proposed transports support KVM guests on x86. FF-A is the only
one that would make sense with KVM, but FF-A is specific to Arm.
2. Virtio-msg isn't compatible with existing frontend VMMs.
Vhost-guest can be used with any frontend VMM that implements
vhost-user.
3. Virtio-msg isn't compatible with existing frontend drivers. While I
expect that drivers for Linux will eventually be upstreamed,
I doubt that drivers for Windows or *BSD will ever be written.
I don't even know if the Windows Driver Framework provides enough
to write one. I don't need this myself, but I suspect that this
is enough to make virtio-msg unsuitable in many environments.
4. Virtio-msg requires invasive changes to existing userspace device
implementations. The project I work on doesn't use QEMU, and the
existing frontends are targeted at server use-cases. Using the
vhost-user protocol lets me reuse these with little effort.
5. To the best of my knowledge, virtio-msg doesn't support live
migration of frontend VMs. Vhost-guest uses the vhost-user
protocol, which has supported this for a very long time. I don't
need live migration myself, but for many server use-cases, not
having live migration is a dealbreaker.
6. I don't know if virtio-msg can achieve comparable performance.
It appears to be optimized for reliability and isolation,
not processing tens of gigabits of network traffic per second.
Vhost-guest is designed with performance in mind.
Vhost-guest is designed for storage and networking appliances on
servers, whereas virtio-msg is designed for safety-critical embedded
systems. These domains have very different requirements, and as a
result they arrived at very different solutions.
I work on Spectrum (https://spectrum-os.org), which uses Cloud
Hypervisor. As the name implies, Cloud Hypervisor is primarily
intended for cloud workloads, though it can also be used on clients.
I don't think that an implementation of virtio-msg would be accepted,
as it benefits none of Cloud Hypervisor's other users.
--
Sincerely,
Demi Marie Obenour (she/her/hers)
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 7253 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next parent reply other threads:[~2026-05-28 6:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <11771164-7919-43e1-a980-03f036bdae2e@gmail.com>
[not found] ` <SJ0PR12MB6806C5A16CB0899E095E835EDC092@SJ0PR12MB6806.namprd12.prod.outlook.com>
[not found] ` <CAAjaMXYGMTok_a2CJK8aKSqbTbgLx1CbkCVZw2VnZdJVuPJ38w@mail.gmail.com>
2026-05-28 6:59 ` Demi Marie Obenour [this message]
2026-05-28 8:56 ` Vhost-guest (was virtio vhost-user) vs virtio-msg Alyssa Ross
2026-05-28 13:52 ` Stefan Hajnoczi
2026-05-28 16:13 ` Alex Bennée
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=4ba67246-3a2b-43ee-b827-000c16ff07ed@gmail.com \
--to=demiobenour@gmail.com \
--cc=bchen@crusoe.ai \
--cc=dev@lists.cloudhypervisor.org \
--cc=devel@spectrum-os.org \
--cc=hi@alyssa.is \
--cc=manos.pitsidianakis@linaro.org \
--cc=parav@nvidia.com \
--cc=rbradford@meta.com \
--cc=virtio-comment@lists.linux.dev \
/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.
Code repositories for project(s) associated with this public inbox
https://spectrum-os.org/git/crosvm
https://spectrum-os.org/git/doc
https://spectrum-os.org/git/mktuntap
https://spectrum-os.org/git/nixpkgs
https://spectrum-os.org/git/spectrum
https://spectrum-os.org/git/ucspi-vsock
https://spectrum-os.org/git/www
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).