ovs-dpdk与VM

时间:2017-05-23 13:25:31

标签: networking dpdk

我试图了解通过vhost-user接口与VM通信的ovs-dpdk(在主机上运行)中的数据包生命周期:

  1. 通过物理端口接收数据包到设备。
  2. 在dpdk-ovs分配的大页面上将DMA传输到mempools - 在用户空间中。

  3. ovs-dpdk将此数据包复制到关联guest虚拟机的共享vring(在ovs-dpdk用户空间进程和guest虚拟机之间共享)

  4. guest虚拟机中不再有副本 - 即当guest虚拟机上运行的任何应用程序想要使用该数据包时 - shared-vring和guest应用程序之间没有副本。

  5. 这是对的吗?第4部分是如何实施的?这是来宾中的操作系统和来宾中的应用程序之间的通信,那么如何使用零拷贝实现这一点?

1 个答案:

答案 0 :(得分:0)

  

guest虚拟机中不再有副本 - 即当guest虚拟机上运行的任何应用程序想要使用该数据包时 - shared-vring和guest应用程序之间没有副本。   这是对的吗?

不是真的。如果您在来宾中运行DPDK应用程序,这是正确的。但是,如果在guest虚拟机中运行普通内核,则guest虚拟机内核和guest用户空间之间将存在另一个副本。

  

第4部分是如何实施的?

见上文。这仅适用于DPDK应用程序。