Re: [PATCH v1 2/4] virtio-msg: Add virtio-msg, a message based virtio transport layer

Demi Marie Obenour
2026-02-24T17:14:20Z

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

On 1/26/26 11:32, Bill Mills wrote:
> Add a new transport layer that is based on messages.
>
> This transport layer still uses virtqueues as the other transport layers do
> but implements transport layer operations by sending and receiving messages
> instead of the "MMR" reads and writes used in virtio-mmio and virtio-pci.
>
> This transport is useful when the device and driver are both implemented in
> software but the trap and emulate operations of virtio-mmio and virtio-pci
> can not be used.
>
> This transport is intended to be used in many situations, including:
> * between a host processor and its co-processors
> * between two different systems (not SMP) connected via PCIe
> * between normal and secure worlds
> * host to vm
> * vm to vm

(snip)

> +As described in Sections
> +\ref{sec:Virtio Transport Options / Virtio Over Messages / Device Operation / Driver Notifications}
> +and
> +\ref{sec:Virtio Transport Options / Virtio Over Messages / Device Operation / Device Notifications},
> +runtime notifications (\msgref{EVENT_AVAIL}, \msgref{EVENT_USED}, and
> +\msgref{EVENT_CONFIG}) may be delivered in-band or via equivalent out-of-band
> +mechanisms.

Sending these notifications out of band should almost always be more
efficient. Under Xen, one should use per-virtqueue, per-direction
event channels. KVM has irqfd and ioeventfd, and the loopback
transport can use per-virtqueue eventfds or io_uring queues. I would
be quite surprised if FF-A and PCI did not have similar mechanisms
that could be used.

I recommend removing these from the spec and expecting buses to
provide their own notification mechanism.
--
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 --]