[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH v1 00/37] Implementation of vhost-pci for inter-vm commucation
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. The current device part implementation is based on virtio 1.0, but it can be easily upgraded to support the upcoming virtio 1.1. The current QEMU implementation supports the polling mode driver on both sides to receive packets. More features, such as interrupt support, live migration support, protection memory accesses will be added later. Wei Wang (37): vhost-pci-net: the fundamental vhost-pci-net device emulation vhost-pci-net: the fundamental implementation of vhost-pci-net-pci vhost-user: share the vhost-user protocol related structures vl: add the vhost-pci-slave command line option vhost-pci-slave: start the implementation of vhost-pci-slave vhost-pci-slave: set up the fundamental handlers for the server socket vhost-pci-slave/msg: VHOST_USER_GET_FEATURES vhost-pci-slave/msg: VHOST_USER_SET_FEATURES vhost-pci-slave/msg: VHOST_USER_GET_PROTOCOL_FEATURES vhost-pci-slave/msg: VHOST_USER_SET_PROTOCOL_FEATURES vhost-user/msg: VHOST_USER_PROTOCOL_F_SET_DEVICE_ID vhost-pci-slave/msg: VHOST_USER_SET_DEVICE_ID vhost-pci-slave/msg: VHOST_USER_GET_QUEUE_NUM vhost-pci-slave/msg: VHOST_USER_SET_OWNER vhost-pci-slave/msg: VHOST_USER_SET_MEM_TABLE vhost-pci-slave/msg: VHOST_USER_SET_VRING_NUM vhost-pci-slave/msg: VHOST_USER_SET_VRING_BASE vhost-user: send guest physical address of virtqueues to the slave vhost-pci-slave/msg: VHOST_USER_SET_VRING_ADDR vhost-pci-slave/msg: VHOST_USER_SET_VRING_KICK vhost-pci-slave/msg: VHOST_USER_SET_VRING_CALL vhost-pci-slave/msg: VHOST_USER_SET_VRING_ENABLE vhost-pci-slave/msg: VHOST_USER_SET_LOG_BASE vhost-pci-slave/msg: VHOST_USER_SET_LOG_FD vhost-pci-slave/msg: VHOST_USER_SEND_RARP vhost-pci-slave/msg: VHOST_USER_GET_VRING_BASE vhost-pci-net: pass the info collected by vp_slave to the device vhost-pci-net: pass the mem and vring info to the driver vhost-pci-slave/msg: VHOST_USER_SET_VHOST_PCI (start) vhost-pci-slave/msg: VHOST_USER_SET_VHOST_PCI (stop) vhost-user/msg: send VHOST_USER_SET_VHOST_PCI (start/stop) vhost-user: add asynchronous read for the vhost-user master vhost-pci-net: send the negotiated feature bits to the master vhost-pci-slave: add "peer_reset" vhost-pci-net: start the vhost-pci-net device vhost-user/msg: handling VHOST_USER_SET_FEATURES vl: enable vhost-pci-slave hw/net/Makefile.objs | 2 +- hw/net/vhost-pci-net.c | 263 ++++++++++++ hw/net/vhost_net.c | 37 ++ hw/virtio/Makefile.objs | 1 + hw/virtio/vhost-pci-slave.c | 552 +++++++++++++++++++++++++ hw/virtio/vhost-user.c | 184 +++++---- hw/virtio/vhost.c | 61 ++- hw/virtio/virtio-pci.c | 80 ++++ hw/virtio/virtio-pci.h | 16 + include/hw/pci/pci.h | 1 + include/hw/virtio/vhost-backend.h | 2 + include/hw/virtio/vhost-pci-net.h | 45 ++ include/hw/virtio/vhost-pci-slave.h | 46 +++ include/hw/virtio/vhost-user.h | 109 +++++ include/hw/virtio/vhost.h | 3 + include/net/vhost-user.h | 22 +- include/net/vhost_net.h | 2 + include/standard-headers/linux/vhost_pci_net.h | 85 ++++ include/standard-headers/linux/virtio_ids.h | 29 +- net/vhost-user.c | 34 +- qemu-options.hx | 4 + vl.c | 41 ++ 22 files changed, 1485 insertions(+), 134 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 -- 2.7.4
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]