记一次dpdk 16.11版本移植错误排查

编译报错

移植后cmd_thread_init()报错,修改cmd使用的管理核。

server启动后报段错误,tx_buffer初始化失败。

增大hugepage,报错remap失败。

reboot设备,修改server的启动参数,绑定网卡到dpdk,启动成功。

段错误

rte_mempool_get段错误,猜测是因为同时操作mempool的线程绑定在了一个lcore上。

查看进程的各个线程极其核分布的命令:

ps -T -P 1168

发现没有异常。

debug报错信息不全,显示missing debug info

修改文件/etc/yum.repos.d/CentOS-Debuginfo.repo  

enabled=1  

安装debuginfo

yum install nss-softokn-debuginfo --nogpgcheck  

debuginfo 安装相应包:  

debuginfo-install 相应包名  

如出现:  

debuginfo-install: command not found  

则先安装yum-utils:  

yum install yum-utils    

如遇见yum不能使用的情况 请检查是否与安装的python版本有关。

rte_pktmbuf_alloc段错误

只要直接执行rte_pktmbuf_alloc()就会段错误。

gdb发现注册mempool的操作的全局变量  rte_mempool_ops_table 中的ops没有注册成功,全部为空。

同一位置:

原因

新版的dpdk的mempool的各个操作的指针在初始化的时候,采用construtor、used的方式预处理函数,在lMakefile中增加-Wl、--whole-archive  -Wl、--no-whole-archive,静态库中的该注册函数才能成功调用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值