Skip to contentSkip to conversation

vhost-net: preview

PATCH In review Michael S. Tsirkin 2 participants 3 messages Jan 11, 2010

lore
Share & tools
lore
#0 lore raw

cover vhost-net: preview

Here's an untested patchset with vhost support for upstream qemu. Note that you should not expect performance gains from vhost unless in-kernel irqchip is enabled (which is not in upstream qemu now). Since adding vhost involves quite a bit of infrastructure, I thought it makes sense to send an RFC already, so that interested parties can review it. In particular, command line and help text need to be finalized early to so that management can start looking on supporting the feature. This patch has all bits besides migration filled in. Also missing is packet socket
backend: another team is now working on this.

Michael S. Tsirkin (13):
virtio: export virtqueue structure
kvm: add API to set ioeventfd
virtio: add iofd/irqfd support
virtio-pci: fill in irqfd/queufd support
syborg_virtio: add irqfd/eventfd support
s390-virtio: fill in irqfd support
virtio: move typedef to qemu-common
net/tap: add interface to get device fd
tap: add vhost/vhostfd options
tap: add API to retrieve vhost net header
vhost net support
virtio: add status change callback
virtio-net: connect to vhost net backend

 Makefile.target      |    1 +
 hw/s390-virtio-bus.c |   19 +++
 hw/syborg_virtio.c   |   27 ++++
 hw/vhost.c           |  349 ++++++++++++++++++++++++++++++++++++++++++++++++++
 hw/vhost.h           |   33 +++++
 hw/vhost_net.c       |  145 +++++++++++++++++++++
 hw/vhost_net.h       |   20 +++
 hw/virtio-net.c      |   40 ++++++
 hw/virtio-pci.c      |   32 +++++
 hw/virtio.c          |   31 ++---
 hw/virtio.h          |   23 +++-
 kvm-all.c            |   24 ++++
 kvm.h                |    3 +
 net.c                |    8 +
 net/tap.c            |   43 ++++++
 net/tap.h            |    5 +
 qemu-common.h        |    1 +
 qemu-options.hx      |    4 +-
 18 files changed, 785 insertions(+), 23 deletions(-)
 create mode 100644 hw/vhost.c
 create mode 100644 hw/vhost.h
 create mode 100644 hw/vhost_net.c
 create mode 100644 hw/vhost_net.h
#1 lore raw
Quoted 9 lines · Michael S. Tsirkin

Here's an untested patchset with vhost support for upstream qemu. Note that you should not expect performance gains from vhost unless in-kernel irqchip is enabled (which is not in upstream qemu now). Since adding vhost involves quite a bit of infrastructure, I thought it makes sense to send an RFC already, so that interested parties can review it. In particular, command line and help text need to be finalized early to so that management can start looking on supporting the feature. This patch has all bits besides migration filled in. Also missing is packet socket
backend: another team is now working on this.

Can you clarify a question about migration for me. Is it possible to live migrate a guest configured with tap + bridge on one machine over to another where it is launched with vhost + bridge, and vice-versa. In other words does this vhost support have any guest visible impact that would cause migraiton compatability problems, or it is purely a host side optimization like vnet_hdr was ?

Regards,
Daniel

Signature · 4 lines
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
#2 lore raw
Quoted 11 lines · Daniel P. Berrange
Quoted 9 lines · Michael S. Tsirkin

Here's an untested patchset with vhost support for upstream qemu. Note that you should not expect performance gains from vhost unless in-kernel irqchip is enabled (which is not in upstream qemu now). Since adding vhost involves quite a bit of infrastructure, I thought it makes sense to send an RFC already, so that interested parties can review it. In particular, command line and help text need to be finalized early to so that management can start looking on supporting the feature. This patch has all bits besides migration filled in. Also missing is packet socket
backend: another team is now working on this.

Quoted 3 lines

Can you clarify a question about migration for me. Is it possible to live migrate a guest configured with tap + bridge on one machine over to another where it is launched with vhost + bridge, and vice-versa.

Long term, this will be possible without any tweaks. Currently vhost does not support mergeable buffers feature which thus needs to be disabled on both sides for migration to work. Work is underway to add this support.

Quoted 6 lines

In other words does this vhost support have any guest visible impact that would cause migraiton compatability problems, or it is purely a host side optimization like vnet_hdr was ?

Regards,
Daniel

vnet_hdr has guest visible impact.

Quoted 5 lines
Signature · 4 lines
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|