As the design patches to the spec are in discussion, I'm sending out the draft code to show how the vhost-pci deign works.
Comments on the implementation are also very welcommed. Thanks. Code base: v2.7.0 (git: df03468cad) Wei Wang (4): qemu-char: add the "1-server-N-client" support vhost-user: add the vhost-user extension to support the vhost-pci based inter-vm communication vhost-pci-net device support vhost-user: extend the vhost-user Master (client) part to support vhost-pci hw/net/Makefile.objs | 2 +- hw/net/vhost-pci-net.c | 142 +++++++ hw/net/vhost_net.c | 20 + hw/virtio/Makefile.objs | 1 + hw/virtio/vhost-pci-server.c | 469 ++++++++++++++++++++++ hw/virtio/vhost-user.c | 152 ++++---- hw/virtio/virtio-pci.c | 67 ++++ hw/virtio/virtio-pci.h | 14 + include/hw/pci/pci.h | 1 + include/hw/virtio/vhost-backend.h | 3 + include/hw/virtio/vhost-pci-net.h | 39 ++ include/hw/virtio/vhost-pci-server.h | 45 +++ include/hw/virtio/vhost-user.h | 110 ++++++ include/net/vhost_net.h | 5 + include/standard-headers/linux/vhost_pci_net.h | 45 +++ include/standard-headers/linux/virtio_ids.h | 1 + include/sysemu/char.h | 64 +++- include/sysemu/sysemu.h | 1 + qapi-schema.json | 3 +- qemu-char.c | 512 +++++++++++++++++++------ qemu-options.hx | 4 + vl.c | 26 ++ 22 files changed, 1517 insertions(+), 209 deletions(-) create mode 100644 hw/net/vhost-pci-net.c create mode 100644 hw/virtio/vhost-pci-server.c create mode 100644 include/hw/virtio/vhost-pci-net.h create mode 100644 include/hw/virtio/vhost-pci-server.h create mode 100644 include/hw/virtio/vhost-user.h create mode 100644 include/standard-headers/linux/vhost_pci_net.h -- 2.7.4