Here's a patchset with vhost support for upstream qemu, rebased to latest bits, and with all comments I'm aware of addressed.
Please consider for merging. Changes from v5: address minor comments by Amit and Juan Changes from v4: address amit's style comments: mostly renaming for clarity Changes from v3: vhost: vhost net support: use typedef instead of struct name virtio: add set_status callback: fix up non-PCI bindings Changes from v2: Addressed style comments Detect mapping changes and abort Unmap ring on cleanup Changes from v1: Addressed style comments Migration fixes. Gracefully fail with non-tap backends. Michael S. Tsirkin (11): tap: add interface to get device fd kvm: add API to set ioeventfd notifier: event notifier implementation virtio: notifier support + 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 | 37 +++ hw/event_notifier.c | 62 +++++ hw/event_notifier.h | 16 ++ hw/s390-virtio-bus.c | 2 +- hw/syborg_virtio.c | 2 +- hw/vhost.c | 711 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/vhost.h | 48 ++++ hw/vhost_net.c | 195 ++++++++++++++ hw/vhost_net.h | 19 ++ hw/virtio-net.c | 71 +++++- hw/virtio-pci.c | 68 +++++- hw/virtio.c | 80 ++++++- hw/virtio.h | 28 ++- kvm-all.c | 22 ++ kvm.h | 16 ++ net.c | 8 + net/tap.c | 43 +++ net/tap.h | 5 + qemu-common.h | 2 + qemu-options.hx | 4 +- 21 files changed, 1432 insertions(+), 10 deletions(-) create mode 100644 hw/event_notifier.c create mode 100644 hw/event_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