patches and low-level development discussion
 help / color / mirror / code / Atom feed
From: Demi Marie Obenour <demiobenour@gmail.com>
To: "Alyssa Ross" <hi@alyssa.is>, "Bo Chen" <bchen@crusoe.ai>,
	"Rob Bradford" <rbradford@meta.com>,
	"Wei Liu" <liuwe@microsoft.com>,
	"Sebastien Boeuf" <seb@rivosinc.com>,
	qemu-devel@nongnu.org, dev@lists.cloudhypervisor.org,
	"Spectrum OS Development" <devel@spectrum-os.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Stefano Garzarella" <sgarzare@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	virtio-comment@lists.linux.dev
Subject: virtio-msg inter-VM transport vs virtio-vhost-user
Date: Tue, 3 Mar 2026 12:56:46 -0500	[thread overview]
Message-ID: <b291c8af-58ee-46e4-9033-e681ff9677db@gmail.com> (raw)


[-- Attachment #1.1.1: Type: text/plain, Size: 2133 bytes --]

Spectrum (https://spectrum-os.org) is going to be implementing
virtio devices outside of the host.  One proposed method of doing
this is virtio-vhost-user, which is a virtio device that allows a
VM to expose a vhost-user device to another VM.  For instance, one
could assign a NIC to one VM and have it provide a vhost-user-net
device for use by a different VM.

I brought this up on the KVM/QEMU community call today.  Alex Bennée
recommended using virtio-msg instead.  However, I have a few concerns
with this:

1. Virtio-msg buses are specific to a given hypervisor or (in the
   case of FF-A) to a given CPU architecture.  None of the current
   buses support KVM on platforms other than Arm64.  Therefore,
   a brand-new bus would be needed.

2. Virtio-msg requires not-yet-upstream drivers in both the frontend
   (the VM using the device) and the backend (the VM providing the
   device).  Vhost-user uses any of the existing transports, such as
   PCI or MMIO.  This means that upstream drivers can be used in the
   frontend, and also enables supports for Windows and other guests
   that lack support for virtio-msg.

3. Vhost-user is already widely deployed, so frontend implementations
   are quite well tested.  A KVM-specific virtio-msg transport would
   serve only one purpose: driver VMs (with assigned devices) on
   non-Arm64 platforms.  This is a quite niche use-case.  Therefore,
   I'm concerned that the needed frontend code will be poorly tested
   and bitrot.

Manos Pitsidianakis stated that vhost-user does not make sense in
this case.  Why is that?  Would it make sense to use virtio-msg
between VMM and its VM, and expose a vhost-user device to the
outside world?  What about having the virtio-vhost-user guest driver
emulate a virtio-msg transport, so that it can be used with any device
implementation supporting virtio-msg?

I would greatly appreciate any and all suggestions here.  This is a
serious project that is going to be used in production, but I want
to ensure that the design is the best possible.
-- 
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-03-03 17:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-03 17:56 Demi Marie Obenour [this message]
2026-03-04  8:26 ` virtio-msg inter-VM transport vs virtio-vhost-user Bertrand Marquis
2026-03-04  9:18   ` Demi Marie Obenour
2026-03-04 13:36     ` Bertrand Marquis
2026-03-04 16:01 ` Edgar E. Iglesias

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=b291c8af-58ee-46e4-9033-e681ff9677db@gmail.com \
    --to=demiobenour@gmail.com \
    --cc=alex.bennee@linaro.org \
    --cc=bchen@crusoe.ai \
    --cc=dev@lists.cloudhypervisor.org \
    --cc=devel@spectrum-os.org \
    --cc=hi@alyssa.is \
    --cc=liuwe@microsoft.com \
    --cc=manos.pitsidianakis@linaro.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rbradford@meta.com \
    --cc=seb@rivosinc.com \
    --cc=sgarzare@redhat.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).