From: Wei Wang <wei.w.wang@intel.com> To: virtio-dev@lists.oasis-open.org, qemu-devel@nongnu.org, mst@redhat.com, marcandre.lureau@redhat.com, jasowang@redhat.com, stefanha@redhat.com, pbonzini@redhat.com Cc: jan.kiszka@siemens.com, avi.cohen@huawei.com, zhiyong.yang@intel.com, Wei Wang <wei.w.wang@intel.com> Subject: [Qemu-devel] [PATCH v3 0/7] Vhost-pci for inter-VM communication Date: Tue, 5 Dec 2017 11:33:09 +0800 [thread overview] Message-ID: <1512444796-30615-1-git-send-email-wei.w.wang@intel.com> (raw) Vhost-pci is a point-to-point based inter-VM communication solution. This patch series implements the vhost-pci-net device setup and emulation. The device is implemented as a virtio device, and it is set up via the vhost-user protocol to get the neessary info (e.g the memory info of the remote VM, vring info). Currently, only the fundamental functions are implemented. More features, such as MQ and live migration, will be updated in the future. The DPDK PMD of vhost-pci has been posted to the dpdk mailinglist here: http://dpdk.org/ml/archives/dev/2017-November/082615.html v2->v3 changes: 1) static device creation: instead of creating and hot-plugging the device when receiving a vhost-user msg, the device is not created via the qemu booting command line. 2) remove vqs: rq and ctrlq are removed in this version. - receive vq: the receive vq is not needed anymore. The PMD directly shares the remote txq and rxq - grab from remote txq to receive packets, and put to rxq to send packets. - ctrlq: the ctrlq is replaced by the first 4KB metadata area of the device Bar-2. 3) simpler implementation: the entire implementation has been tailored from ~1800 LOC to ~850 LOC. Wei Wang (7): vhost-user: share the vhost-user protocol related structures vhost-pci-net: add vhost-pci-net virtio/virtio-pci.c: add vhost-pci-net-pci vhost-pci-slave: add vhost-pci slave implementation vhost-user: VHOST_USER_SET_VHOST_PCI msg vhost-pci-slave: handle VHOST_USER_SET_VHOST_PCI virtio/vhost.c: vhost-pci needs remote gpa hw/net/Makefile.objs | 2 +- hw/net/vhost_net.c | 37 +++ hw/net/vhost_pci_net.c | 137 +++++++++++ hw/virtio/Makefile.objs | 1 + hw/virtio/vhost-pci-slave.c | 310 +++++++++++++++++++++++++ hw/virtio/vhost-user.c | 117 ++-------- hw/virtio/vhost.c | 63 +++-- hw/virtio/virtio-pci.c | 55 +++++ hw/virtio/virtio-pci.h | 14 ++ include/hw/pci/pci.h | 1 + include/hw/virtio/vhost-backend.h | 2 + include/hw/virtio/vhost-pci-net.h | 42 ++++ include/hw/virtio/vhost-pci-slave.h | 12 + include/hw/virtio/vhost-user.h | 108 +++++++++ include/hw/virtio/vhost.h | 2 + include/net/vhost_net.h | 2 + include/standard-headers/linux/vhost_pci_net.h | 65 ++++++ include/standard-headers/linux/virtio_ids.h | 1 + 18 files changed, 851 insertions(+), 120 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
WARNING: multiple messages have this Message-ID (diff)
From: Wei Wang <wei.w.wang@intel.com> To: virtio-dev@lists.oasis-open.org, qemu-devel@nongnu.org, mst@redhat.com, marcandre.lureau@redhat.com, jasowang@redhat.com, stefanha@redhat.com, pbonzini@redhat.com Cc: jan.kiszka@siemens.com, avi.cohen@huawei.com, zhiyong.yang@intel.com, Wei Wang <wei.w.wang@intel.com> Subject: [virtio-dev] [PATCH v3 0/7] Vhost-pci for inter-VM communication Date: Tue, 5 Dec 2017 11:33:09 +0800 [thread overview] Message-ID: <1512444796-30615-1-git-send-email-wei.w.wang@intel.com> (raw) Vhost-pci is a point-to-point based inter-VM communication solution. This patch series implements the vhost-pci-net device setup and emulation. The device is implemented as a virtio device, and it is set up via the vhost-user protocol to get the neessary info (e.g the memory info of the remote VM, vring info). Currently, only the fundamental functions are implemented. More features, such as MQ and live migration, will be updated in the future. The DPDK PMD of vhost-pci has been posted to the dpdk mailinglist here: http://dpdk.org/ml/archives/dev/2017-November/082615.html v2->v3 changes: 1) static device creation: instead of creating and hot-plugging the device when receiving a vhost-user msg, the device is not created via the qemu booting command line. 2) remove vqs: rq and ctrlq are removed in this version. - receive vq: the receive vq is not needed anymore. The PMD directly shares the remote txq and rxq - grab from remote txq to receive packets, and put to rxq to send packets. - ctrlq: the ctrlq is replaced by the first 4KB metadata area of the device Bar-2. 3) simpler implementation: the entire implementation has been tailored from ~1800 LOC to ~850 LOC. Wei Wang (7): vhost-user: share the vhost-user protocol related structures vhost-pci-net: add vhost-pci-net virtio/virtio-pci.c: add vhost-pci-net-pci vhost-pci-slave: add vhost-pci slave implementation vhost-user: VHOST_USER_SET_VHOST_PCI msg vhost-pci-slave: handle VHOST_USER_SET_VHOST_PCI virtio/vhost.c: vhost-pci needs remote gpa hw/net/Makefile.objs | 2 +- hw/net/vhost_net.c | 37 +++ hw/net/vhost_pci_net.c | 137 +++++++++++ hw/virtio/Makefile.objs | 1 + hw/virtio/vhost-pci-slave.c | 310 +++++++++++++++++++++++++ hw/virtio/vhost-user.c | 117 ++-------- hw/virtio/vhost.c | 63 +++-- hw/virtio/virtio-pci.c | 55 +++++ hw/virtio/virtio-pci.h | 14 ++ include/hw/pci/pci.h | 1 + include/hw/virtio/vhost-backend.h | 2 + include/hw/virtio/vhost-pci-net.h | 42 ++++ include/hw/virtio/vhost-pci-slave.h | 12 + include/hw/virtio/vhost-user.h | 108 +++++++++ include/hw/virtio/vhost.h | 2 + include/net/vhost_net.h | 2 + include/standard-headers/linux/vhost_pci_net.h | 65 ++++++ include/standard-headers/linux/virtio_ids.h | 1 + 18 files changed, 851 insertions(+), 120 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 --------------------------------------------------------------------- To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next reply other threads:[~2017-12-05 3:49 UTC|newest] Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-12-05 3:33 Wei Wang [this message] 2017-12-05 3:33 ` [virtio-dev] [PATCH v3 0/7] Vhost-pci for inter-VM communication Wei Wang 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 1/7] vhost-user: share the vhost-user protocol related structures Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 2/7] vhost-pci-net: add vhost-pci-net Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 14:59 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-05 14:59 ` Stefan Hajnoczi 2017-12-05 15:17 ` [Qemu-devel] " Michael S. Tsirkin 2017-12-05 15:17 ` Michael S. Tsirkin 2017-12-05 15:55 ` [Qemu-devel] " Michael S. Tsirkin 2017-12-05 15:55 ` Michael S. Tsirkin 2017-12-05 16:41 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-05 16:41 ` Stefan Hajnoczi 2017-12-05 16:53 ` [Qemu-devel] " Michael S. Tsirkin 2017-12-05 16:53 ` Michael S. Tsirkin 2017-12-05 17:00 ` [Qemu-devel] " Cornelia Huck 2017-12-05 17:00 ` [virtio-dev] " Cornelia Huck 2017-12-05 18:06 ` Michael S. Tsirkin 2017-12-05 18:06 ` [virtio-dev] " Michael S. Tsirkin 2017-12-06 10:17 ` Wei Wang 2017-12-06 10:17 ` Wei Wang 2017-12-06 12:01 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-06 12:01 ` Stefan Hajnoczi 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 3/7] virtio/virtio-pci.c: add vhost-pci-net-pci Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 4/7] vhost-pci-slave: add vhost-pci slave implementation Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 15:56 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-05 15:56 ` [virtio-dev] " Stefan Hajnoczi 2017-12-14 17:30 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-14 17:30 ` [virtio-dev] " Stefan Hajnoczi 2017-12-14 17:48 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-14 17:48 ` [virtio-dev] " Stefan Hajnoczi 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 5/7] vhost-user: VHOST_USER_SET_VHOST_PCI msg Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 16:00 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-05 16:00 ` [virtio-dev] " Stefan Hajnoczi 2017-12-06 10:32 ` [Qemu-devel] " Wei Wang 2017-12-06 10:32 ` Wei Wang 2017-12-15 12:40 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-15 12:40 ` Stefan Hajnoczi 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 6/7] vhost-pci-slave: handle VHOST_USER_SET_VHOST_PCI Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 3:33 ` [Qemu-devel] [PATCH v3 7/7] virtio/vhost.c: vhost-pci needs remote gpa Wei Wang 2017-12-05 3:33 ` [virtio-dev] " Wei Wang 2017-12-05 16:05 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-05 16:05 ` [virtio-dev] " Stefan Hajnoczi 2017-12-06 10:46 ` [Qemu-devel] " Wei Wang 2017-12-06 10:46 ` Wei Wang 2017-12-05 4:13 ` [Qemu-devel] [PATCH v3 0/7] Vhost-pci for inter-VM communication no-reply 2017-12-05 7:01 ` [Qemu-devel] [virtio-dev] " Jason Wang 2017-12-05 7:01 ` Jason Wang 2017-12-05 7:15 ` [Qemu-devel] " Wei Wang 2017-12-05 7:15 ` Wei Wang 2017-12-05 7:19 ` [Qemu-devel] " Jason Wang 2017-12-05 7:19 ` Jason Wang 2017-12-05 8:49 ` [Qemu-devel] " Avi Cohen (A) 2017-12-05 8:49 ` Avi Cohen (A) 2017-12-05 10:36 ` [Qemu-devel] " Wei Wang 2017-12-05 10:36 ` Wei Wang 2017-12-05 14:30 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-05 14:30 ` Stefan Hajnoczi 2017-12-05 15:20 ` [Qemu-devel] " Michael S. Tsirkin 2017-12-05 15:20 ` [virtio-dev] " Michael S. Tsirkin 2017-12-05 16:06 ` [Qemu-devel] [virtio-dev] " Stefan Hajnoczi 2017-12-05 16:06 ` Stefan Hajnoczi 2017-12-06 13:49 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-06 13:49 ` Stefan Hajnoczi 2017-12-06 16:09 ` [Qemu-devel] " Wang, Wei W 2017-12-06 16:09 ` Wang, Wei W 2017-12-06 16:27 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-07 3:57 ` Wei Wang 2017-12-07 3:57 ` [virtio-dev] " Wei Wang 2017-12-07 5:11 ` Michael S. Tsirkin 2017-12-07 5:11 ` [virtio-dev] " Michael S. Tsirkin 2017-12-07 5:34 ` Wei Wang 2017-12-07 5:34 ` [virtio-dev] " Wei Wang 2017-12-07 6:31 ` Stefan Hajnoczi 2017-12-07 7:54 ` Avi Cohen (A) 2017-12-07 7:54 ` [virtio-dev] " Avi Cohen (A) 2017-12-07 8:04 ` Stefan Hajnoczi 2017-12-07 8:31 ` Jason Wang 2017-12-07 8:31 ` [virtio-dev] " Jason Wang 2017-12-07 10:24 ` [Qemu-devel] [virtio-dev] " Stefan Hajnoczi 2017-12-07 10:24 ` [virtio-dev] Re: [Qemu-devel] " Stefan Hajnoczi 2017-12-07 13:33 ` Michael S. Tsirkin 2017-12-07 13:33 ` [virtio-dev] " Michael S. Tsirkin 2017-12-07 9:02 ` Wei Wang 2017-12-07 9:02 ` [virtio-dev] " Wei Wang 2017-12-07 13:08 ` Stefan Hajnoczi 2017-12-07 14:02 ` Michael S. Tsirkin 2017-12-07 14:02 ` [virtio-dev] " Michael S. Tsirkin 2017-12-07 16:29 ` Stefan Hajnoczi 2017-12-07 16:47 ` Michael S. Tsirkin 2017-12-07 16:47 ` [virtio-dev] " Michael S. Tsirkin 2017-12-07 17:29 ` Stefan Hajnoczi 2017-12-07 17:38 ` Michael S. Tsirkin 2017-12-07 17:38 ` [virtio-dev] " Michael S. Tsirkin 2017-12-07 18:28 ` Stefan Hajnoczi 2017-12-07 23:54 ` Michael S. Tsirkin 2017-12-07 23:54 ` [virtio-dev] " Michael S. Tsirkin 2017-12-08 6:08 ` Stefan Hajnoczi 2017-12-08 14:27 ` Michael S. Tsirkin 2017-12-08 14:27 ` [virtio-dev] " Michael S. Tsirkin 2017-12-08 16:15 ` Stefan Hajnoczi 2017-12-09 16:08 ` Wang, Wei W 2017-12-09 16:08 ` [virtio-dev] " Wang, Wei W 2017-12-08 6:43 ` Wei Wang 2017-12-08 6:43 ` [virtio-dev] " Wei Wang 2017-12-08 8:33 ` Stefan Hajnoczi 2017-12-09 16:23 ` Wang, Wei W 2017-12-09 16:23 ` [virtio-dev] " Wang, Wei W 2017-12-11 11:11 ` Stefan Hajnoczi 2017-12-11 11:11 ` [virtio-dev] " Stefan Hajnoczi 2017-12-11 13:53 ` Wang, Wei W 2017-12-11 13:53 ` [virtio-dev] " Wang, Wei W 2017-12-12 10:14 ` Stefan Hajnoczi 2017-12-12 10:14 ` [virtio-dev] " Stefan Hajnoczi 2017-12-13 8:11 ` Wei Wang 2017-12-13 8:11 ` [virtio-dev] " Wei Wang 2017-12-13 12:35 ` Stefan Hajnoczi 2017-12-13 15:01 ` Michael S. Tsirkin 2017-12-13 15:01 ` [virtio-dev] " Michael S. Tsirkin 2017-12-13 20:08 ` Stefan Hajnoczi 2017-12-13 20:59 ` Michael S. Tsirkin 2017-12-13 20:59 ` [virtio-dev] " Michael S. Tsirkin 2017-12-14 15:06 ` Stefan Hajnoczi 2017-12-14 15:06 ` [virtio-dev] " Stefan Hajnoczi 2017-12-15 10:33 ` Wei Wang 2017-12-15 10:33 ` [virtio-dev] " Wei Wang 2017-12-15 12:37 ` Stefan Hajnoczi 2017-12-15 12:37 ` [virtio-dev] " Stefan Hajnoczi 2017-12-13 21:50 ` Maxime Coquelin 2017-12-13 21:50 ` [virtio-dev] " Maxime Coquelin 2017-12-14 15:46 ` [Qemu-devel] [virtio-dev] " Stefan Hajnoczi 2017-12-14 15:46 ` [virtio-dev] Re: [Qemu-devel] " Stefan Hajnoczi 2017-12-14 16:27 ` [Qemu-devel] [virtio-dev] " Michael S. Tsirkin 2017-12-14 16:27 ` [virtio-dev] Re: [Qemu-devel] " Michael S. Tsirkin 2017-12-14 16:39 ` [Qemu-devel] [virtio-dev] " Maxime Coquelin 2017-12-14 16:39 ` [virtio-dev] Re: [Qemu-devel] " Maxime Coquelin 2017-12-14 16:40 ` [Qemu-devel] [virtio-dev] " Michael S. Tsirkin 2017-12-14 16:40 ` [virtio-dev] Re: [Qemu-devel] " Michael S. Tsirkin 2017-12-14 16:50 ` [Qemu-devel] [virtio-dev] " Maxime Coquelin 2017-12-14 16:50 ` [virtio-dev] Re: [Qemu-devel] " Maxime Coquelin 2017-12-14 18:11 ` [Qemu-devel] [virtio-dev] " Stefan Hajnoczi 2017-12-14 18:11 ` [virtio-dev] Re: [Qemu-devel] " Stefan Hajnoczi 2017-12-14 5:53 ` Wei Wang 2017-12-14 5:53 ` [virtio-dev] " Wei Wang 2017-12-14 17:32 ` Stefan Hajnoczi 2017-12-14 17:32 ` [virtio-dev] " Stefan Hajnoczi 2017-12-15 9:10 ` Wei Wang 2017-12-15 9:10 ` [virtio-dev] " Wei Wang 2017-12-15 12:26 ` Stefan Hajnoczi 2017-12-15 12:26 ` [virtio-dev] " Stefan Hajnoczi 2017-12-14 18:04 ` Stefan Hajnoczi 2017-12-14 18:04 ` [virtio-dev] " Stefan Hajnoczi 2017-12-15 10:33 ` [Qemu-devel] [virtio-dev] " Wei Wang 2017-12-15 10:33 ` [virtio-dev] Re: [Qemu-devel] " Wei Wang 2017-12-15 12:00 ` [Qemu-devel] [virtio-dev] " Stefan Hajnoczi 2017-12-15 12:00 ` [virtio-dev] Re: [Qemu-devel] " Stefan Hajnoczi 2017-12-06 16:13 ` Stefan Hajnoczi 2017-12-19 11:35 ` Stefan Hajnoczi 2017-12-19 11:35 ` Stefan Hajnoczi 2017-12-19 14:56 ` [Qemu-devel] " Michael S. Tsirkin 2017-12-19 14:56 ` Michael S. Tsirkin 2017-12-19 17:05 ` [Qemu-devel] " Stefan Hajnoczi 2017-12-20 4:06 ` Michael S. Tsirkin 2017-12-20 4:06 ` [virtio-dev] " Michael S. Tsirkin 2017-12-20 6:26 ` Stefan Hajnoczi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1512444796-30615-1-git-send-email-wei.w.wang@intel.com \ --to=wei.w.wang@intel.com \ --cc=avi.cohen@huawei.com \ --cc=jan.kiszka@siemens.com \ --cc=jasowang@redhat.com \ --cc=marcandre.lureau@redhat.com \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=stefanha@redhat.com \ --cc=virtio-dev@lists.oasis-open.org \ --cc=zhiyong.yang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.