虚拟机环境下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模块。