diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2012-01-12 00:14:42 -0500 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2012-01-12 00:14:42 -0500 |
commit | 7b21e34fd1c272e3a8c3846168f2f6287a4cd72b (patch) | |
tree | 0f94c9f834f5b7cd8ba87168df892ed17b09cb8f /include/linux/virtio_ring.h | |
parent | e343a895a9f342f239c5e3c5ffc6c0b1707e6244 (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 'include/linux/virtio_ring.h')
-rw-r--r-- | include/linux/virtio_ring.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h index 36be0f6e18a9..e338730c2660 100644 --- a/include/linux/virtio_ring.h +++ b/include/linux/virtio_ring.h | |||
@@ -168,6 +168,7 @@ struct virtqueue; | |||
168 | struct virtqueue *vring_new_virtqueue(unsigned int num, | 168 | struct virtqueue *vring_new_virtqueue(unsigned int num, |
169 | unsigned int vring_align, | 169 | unsigned int vring_align, |
170 | struct virtio_device *vdev, | 170 | struct virtio_device *vdev, |
171 | bool weak_barriers, | ||
171 | void *pages, | 172 | void *pages, |
172 | void (*notify)(struct virtqueue *vq), | 173 | void (*notify)(struct virtqueue *vq), |
173 | void (*callback)(struct virtqueue *vq), | 174 | void (*callback)(struct virtqueue *vq), |