Vhost-pci based inter-VM communication extension
Summary: extend the current vhost-pci based inter-VM communication
Existing vhost-pci supports dynamic setup (i.e. the vhost-pci-net device is created and hot-plugged to the VM based on runtime requests) of an asymmetric inter-VM communication channel (i.e. communication between vhost-pci-net and virtio-net). The channel is built by sharing a VM’s entire memory with another VM. This gives rise to good inter-VM communication performance and it is useful for use cases (e.g. Network Function Virtualization) where security is not an important factor.
In the extension work, we enable static setup (i.e. create vhost-pci-net via QEMU booting command line) of a symmetrical inter-VM communication channel (i.e. vhost-pci-net to vhost-pci-net communication). As opposed to sharing the entire VM’s memory, the two VMs share a piece of intermediate memory to transmit network packets.
- KVM Forum ’16: Design of Vhost-pci (PDF)
- Vhost-pci v1 QEMU implementation
- Vhost-pci draft driver
- Virtio 1.0 spec
- Skill level: advanced
- Language: C
- Mentor: Wei, Wang <firstname.lastname@example.org>, Yuanhan, Liu <email@example.com>
- Suggested by: Marc-André Lureau <firstname.lastname@example.org>