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. Anthony, if you are still deliberating some issues, maybe the series can be merged partially? This will at least reduce the amount of noise from reposting the large patchset. 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 | 36 +++ hw/event_notifier.c | 62 +++++ hw/event_notifier.h | 16 ++ hw/s390-virtio-bus.c | 2 +- hw/syborg_virtio.c | 2 +- hw/vhost.c | 706 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/vhost.h | 48 ++++ hw/vhost_net.c | 198 ++++++++++++++ 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, 1429 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