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.
Most have compare-and-swap or load-locked/store-conditional instructions, though, which can be used to implement atomic increment. -- Jamie