[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [virtio-dev] [PATCH v3 0/7] Vhost-pci for inter-VM communication
On Tue, Dec 05, 2017 at 11:33:09AM +0800, Wei Wang wrote: > 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 This thread has become long so I've summarized outstanding issues: * Whether to define a virtio device for each device type or to have a single virtio device that speaks the vhost-user protocol. Discussion ongoing. * Please structure the code so there is a common vhost-pci component that other device types (scsi, blk) could use. This will show that the code is designed with other device types (scsi, blk) in mind. * Please validate all inputs from vhost-user protocol messages to protect against buffer overflows and other bugs. * Please handle short reads/writes and EAGAIN with the UNIX domain socket. Do not use read/write_all() functions because they hang QEMU until I/O completes. * What happens when the vhost-user master disconnects while we're running? * How does the guest know when the QEMU vhost-user slave has finished initializing everything? It seems like a guest driver could access the device before things are initialized. * How can the vhost-user slave inside the guest participate in feature negotiation? It must be able to participate, otherwise slaves cannot disable features that QEMU supports but they don't want to support. It's not feasible to pass in host_features as a QEMU parameter because that would require libvirt, OpenStack, cloud providers, etc to add support so users can manually set the bits for their slave implementation. * How can the the guest limit the number of virtqueues? * Please include tests. See tests/virtio-net-test.c and tests/vhost-user-test.c for examples.
Description: PGP signature