0

我试图了解 ovs-dpdk(在主机上运行)通过 vhost 用户界面与 VM 通信的数据包生命周期:

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

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

  4. 来宾中不再有副本 - 即,当来宾上运行的任何应用程序想要使用数据包时 - 在 shared-vring 和来宾应用程序之间存在零副本。

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

4

1 回答 1

1

来宾中不再有副本 - 即,当来宾上运行的任何应用程序想要使用数据包时 - 在 shared-vring 和来宾应用程序之间存在零副本。那是对的吗?

并不真地。如果您在来宾中运行 DPDK 应用程序是正确的。但是如果你在来宾中运行一个普通的内核,那么来宾内核和来宾用户空间之间就会有另一个副本。

第 4 部分如何实施?

看上面。这仅适用于 DPDK 应用程序。

于 2017-05-24T19:26:46.360 回答