On Wed, Dec 06, 2017 at 06:17:27PM +0800, Wei Wang wrote: > On 12/05/2017 10:59 PM, Stefan Hajnoczi wrote: > > On Tue, Dec 05, 2017 at 11:33:11AM +0800, Wei Wang wrote: > > > Add the vhost-pci-net device emulation. The device uses bar 2 to expose > > > the remote VM's memory to the guest. The first 4KB of the the bar area > > > stores the metadata which describes the remote memory and vring info. > > This device looks like the beginning of a new "vhost-pci" virtio device > > type. There are layering violations: > > > > 1. This has nothing to do with virtio-net or networking, it's purely > > vhost-pci. Why is it called vhost-pci-net instead of vhost-pci? > > Here are a few things that are specific to vhost-pci-net here: > > 1) The device category here is set to NETWORK. > 2) vhost-pci-net related features (e.g. future MQ feature) will be added to > the property here. > > Right now, we only have vhost-pci-net. How about all focusing on the > vhost-pci-net, and ignore vhost-pci for now? When future other types of > devices are addded, we can abstract out a common vhost-pci layer?
That won't work well for a new device. It would be fine if this code was internal to QEMU, but it's a guest interface and changing it is relatively costly. Once this code ships the hardware interface is fixed and drivers depend on it. Changing the hardware interface requires driver upgrades inside the guest. All information needed to design vhost-pci for multiple device types is already available. The VIRTIO specification defines the device model and vhost-user supports at least virtio-net, virtio-scsi, and virtio-blk (in development). I have CCed Felipe (vhost-user-scsi) and Changpeng (vhost-user-blk) to see if they are interested in vhost-pci. Stefan
signature.asc
Description: PGP signature