On Mon, Aug 31, 2015 at 05:11:02PM +0300, Michael S. Tsirkin wrote: > The resulting channel might look something like the following: > > +-- VM1 --------------+ +---VM2-----------+ > | virtio-pci -- iommu +--+ vhost-pci -- VF | -- VFIO -- IOMMU -- NIC > +---------------------+ +-----------------+ > > comparing the two diagrams, a vhost-user thread on the host is > no longer required, reducing the host CPU utilization when > polling is active. At the same time, VM2 can not access all of VM1's > memory - it is limited by the iommu configuration setup by VM1. Can this use virtio's vring? If standard virtio devices (net, blk, etc) cannot be used because this scheme requires new descriptor rings or memory layout, then this is more an "ivshmem 2.0" than "virtio". I'm not clear on how vhost-pci works - is this a host kernel component that updates VM2's memory mappings when VM1 changes iommu entries? In VM2 there is a userspace network router. It can mmap the VF's BARs to access the physical network. What about the virtual NIC to VM1, how does the userspace network router access it? _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization