aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/vhost/vhost.h
diff options
context:
space:
mode:
authorJason Wang <jasowang@redhat.com>2016-12-12 14:46:49 +0800
committerMichael S. Tsirkin <mst@redhat.com>2016-12-16 00:12:50 +0200
commit809ecb9bca6a9424ccd392d67e368160f8b76c92 (patch)
tree606dee0e521208955dee5b5bdda763b3c30425cb /drivers/vhost/vhost.h
parentvsock: lookup and setup guest_cid inside vhost_vsock_lock (diff)
downloadlinux-dev-809ecb9bca6a9424ccd392d67e368160f8b76c92.tar.xz
linux-dev-809ecb9bca6a9424ccd392d67e368160f8b76c92.zip
vhost: cache used event for better performance
When event index was enabled, we need to fetch used event from userspace memory each time. This userspace fetch (with memory barrier) could be saved sometime when 1) caching used event and 2) if used event is ahead of new and old to new updating does not cross it, we're sure there's no need to notify guest. This will be useful for heavy tx load e.g guest pktgen test with Linux driver shows ~3.5% improvement. Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'drivers/vhost/vhost.h')
-rw-r--r--drivers/vhost/vhost.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index 78f3c5fc02e4..a9cbbb148f46 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -107,6 +107,9 @@ struct vhost_virtqueue {
/* Last index we used. */
u16 last_used_idx;
+ /* Last used evet we've seen */
+ u16 last_used_event;
+
/* Used flags */
u16 used_flags;