编译报错
移植后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,静态库中的该注册函数才能成功调用。