On 02/25/2010 12:27 PM, Michael S. Tsirkin wrote:
Here's a patchset with vhost support for upstream qemu,
rabed to latest bits.
Note that irqchip/MSI is no longer required for vhost, but you should
not expect performance gains from vhost unless in-kernel irqchip is
enabled (which is not in upstream qemu now), and unless guest enables
MSI. A follow-up patchset against qemu-kvm will add irqchip support.
Only virtio-pci is currently supported: I'm interested in supporting
syborg/s390 as well, and tried to make APIs generic to make this
possible.
Also missing is packet socket backend.
Looks pretty good overall.
Regards,
Anthony Liguori
Cc'd, you did review of these internally, I would be thankful
for review/ack upstream.
Changes from v1:
Addressed style comments
Migration fixes.
Gracefully fail with non-tap backends.
Michael S. Tsirkin (12):
tap: add interface to get device fd
kvm: add API to set ioeventfd
notifier: event notifier implementation
virtio: add notifier support
virtio: add APIs for queue fields
virtio: add set_status callback
virtio: move typedef to qemu-common
virtio-pci: fill in notifier support
vhost: vhost net support
tap: add vhost/vhostfd options
tap: add API to retrieve vhost net header
virtio-net: vhost net support
Makefile.target | 3 +
configure | 21 ++
hw/notifier.c | 50 ++++
hw/notifier.h | 16 ++
hw/s390-virtio-bus.c | 7 +-
hw/syborg_virtio.c | 2 +
hw/vhost.c | 631 ++++++++++++++++++++++++++++++++++++++++++++++++++
hw/vhost.h | 44 ++++
hw/vhost_net.c | 177 ++++++++++++++
hw/vhost_net.h | 20 ++
hw/virtio-net.c | 71 ++++++-
hw/virtio-pci.c | 71 ++++++-
hw/virtio.c | 55 +++++-
hw/virtio.h | 15 +-
kvm-all.c | 22 ++
kvm.h | 16 ++
net.c | 8 +
net/tap.c | 47 ++++
net/tap.h | 5 +
qemu-common.h | 2 +
qemu-options.hx | 4 +-
21 files changed, 1279 insertions(+), 8 deletions(-)
create mode 100644 hw/notifier.c
create mode 100644 hw/notifier.h
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