patches and low-level development discussion
 help / color / mirror / code / Atom feed
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 --]

       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).