vpp/dpdk多开(以vpp为例同时开启两个vpp程序)

本文以vpp双开为例来介绍下当时定位该问题的一个历程。
vpp版本18.07(其dpdk版本为18.05)

实验发现vpp(或dpdk)较新的版本天然支持多开,例如dpdk的19.08版本就天然支持,这里主要讲解下老版本不能双开(或新版本可以双开)的本质问题。

先来看下双开时报的错:Is another primary process running在这里插入图片描述
找到这里就会发现是在rte_config_init初始化时出现问题了,由此根据rte在初始化流程中所作的处理基本可以猜测到可能是资源相关的地方出问题了(事实上的确是该地方出现问题了)。

其实找到上面的那句log信息位置(dpdk),再往上看就可以看出问题所在了,下面给出相应的截图:dpdk_18.05的代码截图
dpdk_18.05的代码截图
dpdk_19.08的代码截图
dpdk_19.08的代码截图

问题都是一样的,双开时相当于两次fcntl操作了同一个文件(mem_cfg_fd),查看errno发现也是这样的retval的返回值是 11 即 EAGAIN /* Try again */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值