aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio/vhost.c
diff options
context:
space:
mode:
authorPankaj Gupta <pagupta@redhat.com>2015-06-16 13:48:59 +0530
committerMichael S. Tsirkin <mst@redhat.com>2015-06-19 12:17:49 +0200
commit1e7398a140f7a6bd9f5a438e7ad0f1ef50990e25 (patch)
treea321d5ab687fbe83abba5c2dfd83d97051abfff0 /hw/virtio/vhost.c
parent74de5504fd063019433ec0746105da774ede790d (diff)
downloadqemu-1e7398a140f7a6bd9f5a438e7ad0f1ef50990e25.zip
qemu-1e7398a140f7a6bd9f5a438e7ad0f1ef50990e25.tar.gz
qemu-1e7398a140f7a6bd9f5a438e7ad0f1ef50990e25.tar.bz2
vhost: enable vhost without without MSI-X
We use vhostforce to enable vhost even if Guests don't have MSI-X support and we fall back to QEMU virtio-net. This gives a very small performance gain, but the disadvantage is that guest now controls which virtio code is running (qemu or vhost) so our attack surface is doubled. This patch will enable vhost unconditionally whenever it's requested. For compatibility, enable vhost when vhostforce is set, as well. Signed-off-by: Pankaj Gupta <pagupta@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw/virtio/vhost.c')
-rw-r--r--hw/virtio/vhost.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 7ea45b3..b84d21c 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -898,7 +898,7 @@ static void vhost_virtqueue_cleanup(struct vhost_virtqueue *vq)
}
int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
- VhostBackendType backend_type, bool force)
+ VhostBackendType backend_type)
{
uint64_t features;
int i, r;
@@ -961,7 +961,6 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
hdev->started = false;
hdev->memory_changed = false;
memory_listener_register(&hdev->memory_listener, &address_space_memory);
- hdev->force = force;
return 0;
fail_vq:
while (--i >= 0) {
@@ -989,17 +988,6 @@ void vhost_dev_cleanup(struct vhost_dev *hdev)
hdev->vhost_ops->vhost_backend_cleanup(hdev);
}
-bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev)
-{
- BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
- VirtioBusState *vbus = VIRTIO_BUS(qbus);
- VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
-
- return !k->query_guest_notifiers ||
- k->query_guest_notifiers(qbus->parent) ||
- hdev->force;
-}
-
/* Stop processing guest IO notifications in qemu.
* Start processing them in vhost in kernel.
*/