qemu5.0创建vhostuser网卡无法ping通ovs端口

        在上次使用ovs+dpdk创建vhostuser端口与qemu虚拟机链接成功后,虚拟机无法ping通主机侧ovs网桥br0端口的问题被遗留下来,经过一段时间的摸索总算成功解决该问题。

在起虚拟机后一段时间,观察到ovs日志存在一些报错如下:

由此可知创建mempool失败,大概率是我这年迈的主机内存不足,分配的大页内存数量不够,于是将大页内存预留4G给ovs并设置ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=4096,然并卵。

于是开始阅读代码,错误出现在rte_pktmbuf_pool_create_by_ops函数内

此处操作为根据名字寻早合适的ops方法,代码如下

最终是因为找不到ops所以返回失败。那么问题来了,为什么找不到方法,是名字异常?还是没有注册成功。通过调试,发现ops名字是默认使用的ring_mp_mc,并且发现该ops在运行时会提前注册,并不需要人为调用注册。是不是没有使用librte_mempool_ring.so?于是找到加载so的初始化代码如下:

怀疑此路径是否正确,于是打印该路径后发现该路径确实存在问题

/root/rpmbuild/BUILDROOT/dpdk-22.11-3.el7.x86_64/lib64/dpdk/pmds-23.0

由于我编译时基于rpm编译,该路径变量是基于编译时配置的prefix路径,因此在安装dpdk后并不存在该路径。于是修改该路径默认值为实际so的安装路径/lib64/dpdk/pmds-23.0,编译dpdk重新安装,并重启ovs,接下来就是见证奇迹的时刻:

完美收官!接下来还有两个第一阶段学习遇到的问题需要解决,一个是ovs-dpctl show异常日志,另外一个就是使用rpm包安装debuginfo后仍然gdb没有堆栈的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勺红华落空寂叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值