qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RESEND Patch v1 00/37] Implementation of vhost-pci for inter-vm commucation
@ 2016-12-19  5:58 Wei Wang
  2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 01/37] vhost-pci-net: the fundamental vhost-pci-net device emulation Wei Wang
                   ` (38 more replies)
  0 siblings, 39 replies; 46+ messages in thread
From: Wei Wang @ 2016-12-19  5:58 UTC (permalink / raw)
  To: marcandre.lureau, mst, stefanha, pbonzini, qemu-devel, virtio-dev
  Cc: Wei Wang

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

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2017-01-09  5:12 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-19  5:58 [Qemu-devel] [RESEND Patch v1 00/37] Implementation of vhost-pci for inter-vm commucation Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 01/37] vhost-pci-net: the fundamental vhost-pci-net device emulation Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 02/37] vhost-pci-net: the fundamental implementation of vhost-pci-net-pci Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 03/37] vhost-user: share the vhost-user protocol related structures Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 04/37] vl: add the vhost-pci-slave command line option Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 05/37] vhost-pci-slave: start the implementation of vhost-pci-slave Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 06/37] vhost-pci-slave: set up the fundamental handlers for the server socket Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 07/37] vhost-pci-slave/msg: VHOST_USER_GET_FEATURES Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 08/37] vhost-pci-slave/msg: VHOST_USER_SET_FEATURES Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 09/37] vhost-pci-slave/msg: VHOST_USER_GET_PROTOCOL_FEATURES Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 10/37] vhost-pci-slave/msg: VHOST_USER_SET_PROTOCOL_FEATURES Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 11/37] vhost-user/msg: VHOST_USER_PROTOCOL_F_SET_DEVICE_ID Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 12/37] vhost-pci-slave/msg: VHOST_USER_SET_DEVICE_ID Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 13/37] vhost-pci-slave/msg: VHOST_USER_GET_QUEUE_NUM Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 14/37] vhost-pci-slave/msg: VHOST_USER_SET_OWNER Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 15/37] vhost-pci-slave/msg: VHOST_USER_SET_MEM_TABLE Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 16/37] vhost-pci-slave/msg: VHOST_USER_SET_VRING_NUM Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 17/37] vhost-pci-slave/msg: VHOST_USER_SET_VRING_BASE Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 18/37] vhost-user: send guest physical address of virtqueues to the slave Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 19/37] vhost-pci-slave/msg: VHOST_USER_SET_VRING_ADDR Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 20/37] vhost-pci-slave/msg: VHOST_USER_SET_VRING_KICK Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 21/37] vhost-pci-slave/msg: VHOST_USER_SET_VRING_CALL Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 22/37] vhost-pci-slave/msg: VHOST_USER_SET_VRING_ENABLE Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 23/37] vhost-pci-slave/msg: VHOST_USER_SET_LOG_BASE Wei Wang
2016-12-19  5:58 ` [Qemu-devel] [RESEND Patch v1 24/37] vhost-pci-slave/msg: VHOST_USER_SET_LOG_FD Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 25/37] vhost-pci-slave/msg: VHOST_USER_SEND_RARP Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 26/37] vhost-pci-slave/msg: VHOST_USER_GET_VRING_BASE Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 27/37] vhost-pci-net: pass the info collected by vp_slave to the device Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 28/37] vhost-pci-net: pass the mem and vring info to the driver Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 29/37] vhost-pci-slave/msg: VHOST_USER_SET_VHOST_PCI (start) Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 30/37] vhost-pci-slave/msg: VHOST_USER_SET_VHOST_PCI (stop) Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 31/37] vhost-user/msg: send VHOST_USER_SET_VHOST_PCI (start/stop) Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 32/37] vhost-user: add asynchronous read for the vhost-user master Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 33/37] vhost-pci-net: send the negotiated feature bits to the master Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 34/37] vhost-pci-slave: add "peer_reset" Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 35/37] vhost-pci-net: start the vhost-pci-net device Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 36/37] vhost-user/msg: handling VHOST_USER_SET_FEATURES Wei Wang
2016-12-19  8:28   ` Wei Wang
2016-12-19  5:59 ` [Qemu-devel] [RESEND Patch v1 37/37] vl: enable vhost-pci-slave Wei Wang
2016-12-19  7:17 ` [Qemu-devel] [RESEND Patch v1 00/37] Implementation of vhost-pci for inter-vm commucation no-reply
2016-12-19 16:43 ` Marc-André Lureau
2016-12-20  4:32   ` Wei Wang
2016-12-20  7:22     ` [Qemu-devel] [virtio-dev] " Wei Wang
2017-01-09  5:13     ` [Qemu-devel] " Wei Wang
2017-01-05  7:34   ` Wei Wang
2017-01-05  7:47     ` [Qemu-devel] [virtio-dev] " Wei Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).