我试图了解 ovs-dpdk(在主机上运行)通过 vhost 用户界面与 VM 通信的数据包生命周期:
- 数据包通过物理端口接收到设备。
DMA 传输到用户空间中由 dpdk-ovs 分配的大页面上的内存池。
ovs-dpdk 将此数据包复制到关联来宾的 shared-vring(在 ovs-dpdk 用户空间进程和来宾之间共享)
来宾中不再有副本 - 即,当来宾上运行的任何应用程序想要使用数据包时 - 在 shared-vring 和来宾应用程序之间存在零副本。
那是对的吗?第 4 部分如何实施?这是来宾中的操作系统和来宾中的应用程序之间的通信,那么这是如何实现零拷贝的呢?