[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RESEND Patch v1 00/37] Implementation of vhost-pci for int
From: |
Wei Wang |
Subject: |
[Qemu-devel] [RESEND Patch v1 00/37] Implementation of vhost-pci for inter-vm commucation |
Date: |
Mon, 19 Dec 2016 13:58:35 +0800 |
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, protected memory accesses will be added later.
RESEND change: Fixed some coding style issue
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 | 268 ++++++++++++
hw/net/vhost_net.c | 39 ++
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-pci-slave.c | 570 +++++++++++++++++++++++++
hw/virtio/vhost-user.c | 187 ++++----
hw/virtio/vhost.c | 64 ++-
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 | 37 +-
qemu-options.hx | 4 +
vl.c | 43 ++
22 files changed, 1520 insertions(+), 135 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
- [Qemu-devel] [RESEND Patch v1 00/37] Implementation of vhost-pci for inter-vm commucation,
Wei Wang <=
- [Qemu-devel] [RESEND Patch v1 03/37] vhost-user: share the vhost-user protocol related structures, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 01/37] vhost-pci-net: the fundamental vhost-pci-net device emulation, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 02/37] vhost-pci-net: the fundamental implementation of vhost-pci-net-pci, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 05/37] vhost-pci-slave: start the implementation of vhost-pci-slave, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 04/37] vl: add the vhost-pci-slave command line option, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 06/37] vhost-pci-slave: set up the fundamental handlers for the server socket, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 07/37] vhost-pci-slave/msg: VHOST_USER_GET_FEATURES, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 08/37] vhost-pci-slave/msg: VHOST_USER_SET_FEATURES, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 10/37] vhost-pci-slave/msg: VHOST_USER_SET_PROTOCOL_FEATURES, Wei Wang, 2016/12/19
- [Qemu-devel] [RESEND Patch v1 09/37] vhost-pci-slave/msg: VHOST_USER_GET_PROTOCOL_FEATURES, Wei Wang, 2016/12/19