diff options
authorRusty Russell2012-01-11 23:14:42 -0600
committerRusty Russell2012-01-11 23:14:42 -0600
commit7b21e34fd1c272e3a8c3846168f2f6287a4cd72b (patch)
tree0f94c9f834f5b7cd8ba87168df892ed17b09cb8f /tools/virtio/linux
parente343a895a9f342f239c5e3c5ffc6c0b1707e6244 (diff)
virtio: harsher barriers for rpmsg.
We were cheating with our barriers; using the smp ones rather than the real device ones. That was fine, until rpmsg came along, which is used to talk to a real device (a non-SMP CPU). Unfortunately, just putting back the real barriers (reverting d57ed95d) causes a performance regression on virtio-pci. In particular, Amos reports netbench's TCP_RR over virtio_net CPU utilization increased up to 35% while throughput went down by up to 14%. By comparison, this branch is in the noise. Reference: https://lkml.org/lkml/2011/12/11/22 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'tools/virtio/linux')
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/virtio/linux/virtio.h b/tools/virtio/linux/virtio.h
index 669bcdd45805..953db2abf6b9 100644
--- a/tools/virtio/linux/virtio.h
+++ b/tools/virtio/linux/virtio.h
@@ -214,6 +214,7 @@ void *virtqueue_detach_unused_buf(struct virtqueue *vq);
214struct virtqueue *vring_new_virtqueue(unsigned int num, 214struct virtqueue *vring_new_virtqueue(unsigned int num,
215 unsigned int vring_align, 215 unsigned int vring_align,
216 struct virtio_device *vdev, 216 struct virtio_device *vdev,
217 bool weak_barriers,
217 void *pages, 218 void *pages,
218 void (*notify)(struct virtqueue *vq), 219 void (*notify)(struct virtqueue *vq),
219 void (*callback)(struct virtqueue *vq), 220 void (*callback)(struct virtqueue *vq),