From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Manivannan Sadhasivam <mani@kernel.org>,
Parav Pandit <parav@nvidia.com>,
Bertrand Marquis <Bertrand.Marquis@arm.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Bill Mills (bill.mills@linaro.org)" <bill.mills@linaro.org>,
"virtio-comment@lists.linux.dev" <virtio-comment@lists.linux.dev>,
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>,
Viresh Kumar <viresh.kumar@linaro.org>,
Alex Bennee <alex.bennee@linaro.org>,
Armelle Laine <armellel@google.com>
Subject: Re: [PATCH v1 0/4] virtio-msg transport layer
Date: Thu, 26 Feb 2026 23:08:33 +0100 [thread overview]
Message-ID: <aaDEYbBxGQE5S70i@zapote> (raw)
In-Reply-To: <ac6676b6-f33c-40af-8587-9358809f9243@gmail.com>
On Thu, Feb 26, 2026 at 02:20:01PM -0500, Demi Marie Obenour wrote:
> On 2/26/26 00:36, Manivannan Sadhasivam wrote:
> > On Wed, Feb 25, 2026 at 03:15:39PM +0000, Parav Pandit wrote:
> >>
> >>> From: Manivannan Sadhasivam <mani@kernel.org>
> >>> Sent: 25 February 2026 08:41 PM
> >>>
> >>> On Wed, Feb 25, 2026 at 03:00:19PM +0000, Parav Pandit wrote:
> >>>
> >>> [...]
> >>>
> >>>>>>> Yes. This makes a lot of sense now.
> >>>>>>>
> >>>>>>> This is a virtio-msg-transport device that needs its own device id in the table.
> >>>>>>> And its binding to the PCI transport.
> >>>>>>
> >>>>>> ok. how about an rfc of that idea on the list?
> >>>>>
> >>>>>
> >>>>> I will let Edgar answer on this.
> >>>>>
> >>>> Sure.
> >>>> Also please explain how is this different than SR-IOV devices?
> >>>> On a PCI device there are some child devices exposed using some virtio-msg bus transport.
> >>>> And all of them are going to share same PCI BDF.
> >>>> These individual devices cannot be mapped to different VMs (secure or regular) in a performant way either.
> >>>> So what would this virtio-msg-transport device achieve?
> >>>>
> >>>
> >>> IDK why you are comparing this transport with SR-IOV, which altogether serves a
> >>> different purpose.
> >>>
> >> In the example showed there are multiple devices behind one PCI device.
> >> Why is it not similar to SR-IOV that does exactly that, on one PCI link, exposes multiple devices.
> >>
> >
> > That could be one usecase, but not the actual design.
> >
> >>>> If there was no PCI bus when implementing the virtio-msg transport, it would make sense to avoid trap-emulate story.
> >>>> But underlying transport being PCI, its back to square one for the originally described motivation.
> >>>>
> >>>
> >>> Even with PCI as the physical bus, we don't need any trap and emulate assumption
> >>> with this transport, because the communication is message based, not writing and
> >>> reading registers directly in the BAR memory.
> >>>
> >> That is true. Somewhere in this thread, there was mention of trap+emulation as reason to create some msg based transport.
> >> So I do not know why t+e was mentioned.
> >> I don’t have the link to that email at the moment.
> >>
> >
> > I mentioned that because to run the existing Virtio PCI one would need an
> > emulated PCI device. I think it is also possible to expose custom designed HW as
> > a Virtio PCI device, but that's not the majority.
>
> I suspect that HW virtio-PCI implementations do exist.
> That's the purpose of ACCESS_PLATFORM if I recall correctly.
>
> > One primary example is how the virtqueue configuration happens. The driver
> > selects the queue by writing to the 'queue_select' and immediately it expects
> > the device to select that virtqueue and give response in other fields such as
> > 'queue_size'. This only happens in an emulated PCI bus. But in a real PCI bus,
> > the device on the other end cannot synchronize itself with the host. And this is
> > what being fixed by the message based communication.
> >
> > We tried using the existing Virtio PCI transport in a design where two SoCs are
> > connected using PCIe bus, both running Linux. One will act as Virtio Frontend
> > and another as backend. Then we ran into all sort issues due to the above
> > mentioned assumption/expectation by the transport.
> My understanding is that PCIe guarantees TLP ordering and that reads
> are implemented as messages that require a response. If so, the
> write and read TLPs will appear in the appropriate order and could
> be handled correctly.
>
> However, this would require the PCIe endpoint support software-defined
> MMIO reads. Is this something that is supported, or is it not an
> option due to latency requirements, at least without wasting a CPU
> core on polling?
Right, I think it would be hard to get something like that to perform well.
We would also need the HW logic to hand-over memory accesses to SW and
back..
There are several benefits with a message-based transport compared to
trap+emulate, for example:
1. Trap and emulation is not really available in AMP scenarios. It could
be worked around by trapping locally and converting each memory access
into some kind of message (like Xen IOREQs) but this adds complexity and
latency. With an end-to-end message based transport we can natively speak
across system boundaries.
2. Real-time. Imagine a guest with a single core running some
kind of real-time sensitive workload. Whenever guests access a register,
traps and emulates, the guest "stalls" for the time it takes to respond
to the trapped access. This can lead to high response times which can be
hard to quantify depending on the device implementation.
With a message based transport, guests crafts messages, send them
over and can do other work (e.g take interrupts) while waiting for
responses.
Best regards,
Edgar
next prev parent reply other threads:[~2026-02-26 22:08 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-26 16:32 [PATCH v1 0/4] virtio-msg transport layer Bill Mills
2026-01-26 16:32 ` [PATCH v1 1/4] virtio-msg: add new command for bus normative Bill Mills
2026-02-03 19:42 ` Edgar E. Iglesias
2026-01-26 16:32 ` [PATCH v1 2/4] virtio-msg: Add virtio-msg, a message based virtio transport layer Bill Mills
2026-02-06 16:28 ` Peter Hilber
2026-02-10 9:39 ` Bertrand Marquis
2026-02-12 11:16 ` Peter Hilber
2026-02-20 8:23 ` Bertrand Marquis
2026-02-26 13:53 ` Peter Hilber
2026-02-13 19:09 ` Demi Marie Obenour
2026-02-20 8:52 ` Bertrand Marquis
2026-02-21 2:04 ` Demi Marie Obenour
2026-02-23 7:44 ` Bertrand Marquis
2026-02-24 15:41 ` Demi Marie Obenour
2026-02-24 16:14 ` Bertrand Marquis
2026-02-24 17:36 ` Edgar E. Iglesias
2026-02-24 17:14 ` Demi Marie Obenour
2026-02-24 17:20 ` Bertrand Marquis
2026-02-24 17:46 ` Demi Marie Obenour
2026-02-25 7:26 ` Bertrand Marquis
2026-02-25 12:36 ` Demi Marie Obenour
2026-02-25 12:46 ` Bertrand Marquis
2026-01-26 16:32 ` [PATCH v1 3/4] virtio-msg: link virtio-msg content Bill Mills
2026-02-03 19:43 ` Edgar E. Iglesias
2026-01-26 16:32 ` [PATCH v1 4/4] virtio-msg: add conformance entries in conformance chapter Bill Mills
2026-02-03 19:43 ` Edgar E. Iglesias
2026-01-26 21:47 ` [PATCH v1 0/4] virtio-msg transport layer Demi Marie Obenour
2026-02-03 13:21 ` Michael S. Tsirkin
2026-02-03 19:48 ` Edgar E. Iglesias
2026-02-03 19:55 ` Michael S. Tsirkin
2026-02-04 8:33 ` Bertrand Marquis
2026-02-04 13:50 ` Arnaud POULIQUEN
2026-02-04 3:29 ` Viresh Kumar
2026-02-04 5:34 ` Manivannan Sadhasivam
2026-02-13 13:52 ` Parav Pandit
2026-02-13 19:45 ` Demi Marie Obenour
2026-02-19 17:31 ` Armelle Laine
2026-02-20 8:55 ` Bertrand Marquis
2026-02-19 23:54 ` Michael S. Tsirkin
2026-02-20 6:13 ` Parav Pandit
2026-02-20 9:02 ` Bertrand Marquis
2026-02-25 7:45 ` Manivannan Sadhasivam
2026-02-25 8:03 ` Bertrand Marquis
2026-02-25 8:12 ` Michael S. Tsirkin
2026-02-25 10:06 ` Manivannan Sadhasivam
2026-02-25 10:10 ` Michael S. Tsirkin
2026-02-25 10:14 ` Bertrand Marquis
2026-02-25 10:22 ` Michael S. Tsirkin
2026-02-25 10:53 ` Manivannan Sadhasivam
2026-02-25 10:24 ` Parav Pandit
2026-02-25 10:35 ` Bertrand Marquis
2026-02-25 10:52 ` Michael S. Tsirkin
2026-02-25 10:55 ` Bertrand Marquis
2026-02-25 10:58 ` Michael S. Tsirkin
2026-02-25 14:45 ` Parav Pandit
2026-02-25 14:49 ` Michael S. Tsirkin
2026-02-25 14:53 ` Bertrand Marquis
2026-02-25 15:00 ` Parav Pandit
2026-02-25 15:07 ` Parav Pandit
2026-02-25 15:12 ` Bertrand Marquis
2026-02-25 15:15 ` Michael S. Tsirkin
2026-02-25 15:36 ` Demi Marie Obenour
2026-02-25 15:40 ` Bertrand Marquis
2026-02-25 15:48 ` Demi Marie Obenour
2026-02-25 15:51 ` Bertrand Marquis
2026-02-25 16:15 ` Demi Marie Obenour
2026-02-26 5:40 ` Manivannan Sadhasivam
2026-02-26 7:05 ` Bertrand Marquis
2026-02-25 15:11 ` Manivannan Sadhasivam
2026-02-25 15:15 ` Parav Pandit
2026-02-26 5:36 ` Manivannan Sadhasivam
2026-02-26 5:59 ` Parav Pandit
2026-02-26 6:19 ` Manivannan Sadhasivam
2026-02-26 7:01 ` Bertrand Marquis
2026-02-26 7:28 ` Manivannan Sadhasivam
2026-02-26 19:20 ` Demi Marie Obenour
2026-02-26 22:08 ` Edgar E. Iglesias [this message]
2026-02-25 15:23 ` Demi Marie Obenour
2026-02-25 16:42 ` Edgar E. Iglesias
2026-02-25 12:53 ` Demi Marie Obenour
2026-02-25 13:09 ` Manivannan Sadhasivam
2026-02-25 13:12 ` Demi Marie Obenour
2026-02-25 13:29 ` Bertrand Marquis
2026-02-25 15:19 ` Demi Marie Obenour
2026-02-25 15:27 ` Bertrand Marquis
2026-02-20 10:03 ` Michael S. Tsirkin
2026-02-25 5:09 ` Parav Pandit
2026-02-25 7:25 ` Michael S. Tsirkin
2026-02-25 9:18 ` Parav Pandit
2026-02-25 9:22 ` Michael S. Tsirkin
2026-02-25 9:35 ` Bertrand Marquis
2026-02-25 9:54 ` Michael S. Tsirkin
2026-02-25 10:01 ` Bertrand Marquis
2026-02-25 10:08 ` Michael S. Tsirkin
2026-02-20 8:58 ` Bertrand Marquis
2026-02-20 8:40 ` Bertrand Marquis
2026-02-25 4:58 ` Parav Pandit
2026-02-25 7:52 ` Bertrand Marquis
2026-02-25 12:46 ` Demi Marie Obenour
2026-02-25 13:05 ` Bertrand Marquis
2026-02-25 13:09 ` Demi Marie Obenour
2026-02-25 15:17 ` Bertrand Marquis
2026-02-24 17:57 ` Demi Marie Obenour
2026-02-25 15:21 ` Alex Bennée
2026-02-25 15:46 ` Demi Marie Obenour
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=aaDEYbBxGQE5S70i@zapote \
--to=edgar.iglesias@amd.com \
--cc=Bertrand.Marquis@arm.com \
--cc=alex.bennee@linaro.org \
--cc=armellel@google.com \
--cc=arnaud.pouliquen@foss.st.com \
--cc=bill.mills@linaro.org \
--cc=demiobenour@gmail.com \
--cc=mani@kernel.org \
--cc=mst@redhat.com \
--cc=parav@nvidia.com \
--cc=viresh.kumar@linaro.org \
--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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox