User Tools

Site Tools


vm2vm_mst

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vm2vm_mst [2015/09/03 04:30]
Jun Nakajima
vm2vm_mst [2015/09/03 04:33]
Jun Nakajima
Line 19: Line 19:
 How is this mechanism used for inter-VM communication?​ It should be straightforward. Take a look at a simple example where VM1 receives data from VM2. For example, DPDK runs in VM2, forwarding packets to VM1. How is this mechanism used for inter-VM communication?​ It should be straightforward. Take a look at a simple example where VM1 receives data from VM2. For example, DPDK runs in VM2, forwarding packets to VM1.
  
-In VM1 the device driver uses polling to keep DMA operations of **R** open, looking at the "**bus address**"​ (the step number ​should match with the one in the figure):+In VM1 the device driver uses polling to keep DMA operations of **R** open, looking at the "**bus address**"​ (the step numbers below should match with the one in the figure):
   - For performance reasons, the buffer addresses would be static or covered by larger regions that are mapped by virtual IOMMU. The mapping is determined and established by VM1.   - For performance reasons, the buffer addresses would be static or covered by larger regions that are mapped by virtual IOMMU. The mapping is determined and established by VM1.
   - QEMU of VM1 communicates the configuration of virtual IOMMU to QEMU of VM2. This would require extensions to the vhost-user protocol.   - QEMU of VM1 communicates the configuration of virtual IOMMU to QEMU of VM2. This would require extensions to the vhost-user protocol.
   - The vhost-pci (implemented by the extension) sets BAR in VM2.    - The vhost-pci (implemented by the extension) sets BAR in VM2. 
   - A process (e.g. DPDK) or kernel in VM2 accesses BAR + (**bus address**) in its GPA to copy data to VM1. This operation can be done by data-copying or DMA (by SR-IOV VFs, for example).   - A process (e.g. DPDK) or kernel in VM2 accesses BAR + (**bus address**) in its GPA to copy data to VM1. This operation can be done by data-copying or DMA (by SR-IOV VFs, for example).
-  - The mapping from the **bus address** to GPA in VM1 is done by virtual IOMMU configure ​for the device R. +  - The mapping from the **bus address** to GPA in VM1 is done by virtual IOMMU configured ​for the device ​**R**
  
  
 {{:​vm2vm_mst.png|}} {{:​vm2vm_mst.png|}}
vm2vm_mst.txt ยท Last modified: 2015/09/03 04:33 by Jun Nakajima