Paul Brook wrote:
virtio makes things a bit trickier though. There's a shared ring queue
between the host and guest. The ring queue is lock-less and depends on
the ability to atomically increment ring queue indices to be SMP safe.
Using a copy-API wouldn't be a problem for QEMU since the host and guest
are always running in lock-step. A copy API is actually needed to deal
with differing host/guest alignment and endianness.
That seems a rather poor design choice, as many architectures don't have an
atomic increment instruction. Oh well.
Sorry, I should have been more clear. An atomic increment isn't needed,
just an atomic store.
Regards,
Anthony Liguori
Paul