Thread (37 messages) 37 messages, 5 authors, 2011-12-19

[RFC] virtio: use mandatory barriers for remote processor vdevs

From: mst@redhat.com (Michael S. Tsirkin)
Date: 2011-11-30 14:58:24
Also in: kvm, lkml, virtualization

On Wed, Nov 30, 2011 at 01:45:05PM +0200, Ohad Ben-Cohen wrote:
quoted
So you put virtio rings in MMIO memory?
I'll be precise: the vrings are created in non-cacheable memory, which
both processors have access to.
quoted
Could you please give a couple of examples of breakage?
Sure. Basically, the order of the vring memory operations appear
differently to the observing processor. For example, avail->idx gets
updated before the new entry is put in the available array...
I see. And this happens because the ARM processor reorders
memory writes to this uncacheable memory?
And in an SMP configuration, writes are somehow not reordered?

For example, if we had such an AMP configuration with and x86
processor, wmb() (sfence) would be wrong and smp_wmb() would be sufficient.

Just checking that this is not a bug in the smp_wmb implementation
for the specific platform.

-- 
MST
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help