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
Last revision Both sides next 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