问题描述:
在测试 ZCU102 PL 10G Ethernet with MCDMA 设计的性能时,遇到 UDP 接收丢包率很高的情况,测试使用的工具是 iperf3。
测试过程:
Board side:在 core1~3 上各开一个 iperf3 服务端用于收包,命令如下:
Server side:使用与 zcu102 用光纤相连的服务器发送 UDP 帧,命令如下:
双方的网卡都工作在 MTU1500 模式下,故数据段长度设为 1472B,总带宽暂设为 2400M。
测试结果如上图所示,丢包率超过了百分之十,故实际传输速度也达不到设定的带宽,使用 mpstat 命令观察 CPU 使用状况,发现接收工程中 CPU0 的软中断占用达到93.3%。
解决方案:
使用 RFS 接收流导向,RFS 是 Linux 网络协议栈提供的一项辅助性功能