虚拟机环境下DPDK运行时的一些错误解决

  • 在绑定网卡到DPDK模块时 报错 :is active. Not modifying
Routing table indicates that interface 0000:02:01.0 is active. Not modifying

解决方法:

ifconfig <网卡名称> down
  • 运行testpmd时无法分配内存:
EAL: Error - exiting with code: 1
  Cause: Creation of mbuf pool for socket 0 failed: Cannot allocate memory

内存设置小了,将内存设置大一些(例如从64改成512),问题解决。

  • 运行testpmd,持续输出输入输出的报错信息:
EAL: Error reading from file descriptor 20: Input/output error
EAL: Error reading from file descriptor 18: Input/output error
EAL: Error reading from file descriptor 20: Input/output error
EAL: Error reading from file descriptor 18: Input/output error
EAL: Error reading from file descriptor 20: Input/output error
EAL: Error reading from file descriptor 18: Input/output error

原因:在虚拟机添加的网卡,dpdk不支持导致的。需要修改一行代码,跳过dpdk pci 检查

lib/librte_eal/linuxapp/igb_uio/igb_uio.c文件中找到

pci_intx_mask_supported(dev)

修改为

pci_intx_mask_supported(dev||true)

需要重新编译并加载IO模块。

原文地址:https://www.cnblogs.com/ZCplayground/p/9314295.html