SR-IOV网卡注册常见问题解决

9 篇文章 6 订阅

问题一:
在82599上创建了两个VF之后,各自绑定到vfio,启动DPDK时初始化出现错误:

PMD: eth_ixgbevf_dev_init(): VF Initialization Failure: -15
EAL: Error - exiting with code: 1
Cause: Requested device 0000:01:10.0 cannot be used

在DPDK源码目录下执行grep -r “eth_ixgbevf_dev_init” ./搜索代码报错位置如下:
在这里插入图片描述
问题原因:-15是#define IXGBE_ERR_RESET_FAILED -15网卡PF reset失败;
解决办法:最终确认是PF没有UP导致,ifconfig或ip link set xxx up后问题消失;

问题二:
在82599上创建了两个VF之后,使能多队列为4,启动DPDK时多队列配置出现错误:

PMD: ixgbevf_dev_rx_init(): The number of Rx queue invalid, it should be power of 2
PMD: ixgbevf_dev_start(): Unable to initialize RX hardware (-1)

问题原因:gdb查看网卡队列初始化为0,并且没有走到rte_eth_dev_rx_queue_config函数,在rte_eth_dev_configure函数中判断dev_conf->intr_conf.lsc地方返回;

(gdb) p rte_eth_devices[1]->data->nb_rx_queues
$7 = 0
(gdb) p dev_conf->intr_conf.lsc
$1 = 1

解决办法:去掉rte_eth_conf port_conf里的全局配置.intr_conf = {.lsc =1}关闭lsc中断;

问题三:
在82599或I350上创建了两个VF之后,启动DPDK注册完成接口后无法正常UP;

问题原因:虚拟网卡VF注册最后没有正常的调用OPEN函数,或者网口扫描读取状态寄存器不对;
在这里插入图片描述
万兆和千兆的状态更新函数获取的都是PF的寄存器状态:
在这里插入图片描述
解决办法:保证正常的调用OPEN函数和网口扫描读取状态寄存器即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值