This patch series implements vhost-pci, which is a point-to-point based
inter-vm communication solution. The QEMU side implementation
includes the
vhost-user extension, vhost-pci device emulation and management, and
inter-VM
notification.
v1->v2 changes:
1) inter-VM notification support;
2) vhost-pci-net ctrlq message format change;
3) patch re-org and code cleanup.
Wei Wang (16):
vhost-user: share the vhost-user protocol related structures
vl: add the vhost-pci-slave command line option
vhost-pci-slave: create a vhost-user slave to support vhost-pci
vhost-pci-net: add vhost-pci-net
vhost-pci-net-pci: add vhost-pci-net-pci
virtio: add inter-vm notification support
vhost-user: send device id to the slave
vhost-user: send guest physical address of virtqueues to the slave
vhost-user: send VHOST_USER_SET_VHOST_PCI_START/STOP
vhost-pci-net: send the negotiated feature bits to the master
vhost-user: add asynchronous read for the vhost-user master
vhost-user: handling VHOST_USER_SET_FEATURES
vhost-pci-slave: add "reset_virtio"
vhost-pci-slave: add support to delete a vhost-pci device
vhost-pci-net: tell the driver that it is ready to send packets
vl: enable vhost-pci-slave
hw/net/Makefile.objs | 2 +-
hw/net/vhost-pci-net.c | 364 +++++++++++++
hw/net/vhost_net.c | 39 ++
hw/virtio/Makefile.objs | 7 +-
hw/virtio/vhost-pci-slave.c | 676
+++++++++++++++++++++++++
hw/virtio/vhost-stub.c | 22 +
hw/virtio/vhost-user.c | 192 +++----
hw/virtio/vhost.c | 63 ++-
hw/virtio/virtio-bus.c | 19 +-
hw/virtio/virtio-pci.c | 96 +++-
hw/virtio/virtio-pci.h | 16 +
hw/virtio/virtio.c | 32 +-
include/hw/pci/pci.h | 1 +
include/hw/virtio/vhost-backend.h | 2 +
include/hw/virtio/vhost-pci-net.h | 40 ++
include/hw/virtio/vhost-pci-slave.h | 64 +++
include/hw/virtio/vhost-user.h | 110 ++++
include/hw/virtio/vhost.h | 3 +
include/hw/virtio/virtio.h | 2 +
include/net/vhost-user.h | 22 +-
include/net/vhost_net.h | 2 +
include/standard-headers/linux/vhost_pci_net.h | 74 +++
include/standard-headers/linux/virtio_ids.h | 1 +
net/vhost-user.c | 37 +-
qemu-options.hx | 4 +
vl.c | 46 ++
26 files changed, 1796 insertions(+), 140 deletions(-)
create mode 100644 hw/net/vhost-pci-net.c
create mode 100644 hw/virtio/vhost-pci-slave.c
create mode 100644 include/hw/virtio/vhost-pci-net.h
create mode 100644 include/hw/virtio/vhost-pci-slave.h
create mode 100644 include/hw/virtio/vhost-user.h
create mode 100644 include/standard-headers/linux/vhost_pci_net.h