失败后的core栈像下面这样:

Program terminated with signal SIGILL, Illegal instruction.
# 0x00000000036a3fdd in rte_cpu_get_flag_enabled ()
[Current thread is (Thread 0x7fc26fda21a0 (LWP ))]
(gdb) bt
# 0x00000000036a3fdd in rte_cpu_get_flag_enabled ()
# 0x0000000003694f4e in rte_hash_crc_init_alg ()
# 0x000000000388074f in __libc_csu_init ()
# 0x00007fc26df6092e in __libc_start_main () from /lib64/libc.so.
# 0x0000000000bec929 in _start ()

core的原因很显然:"Illegal instruction",指令非法,查看core处的汇编代码:

shrx指令属于bmi2指令集,查看运行该binary的机器上有无bmi2指令集:

cat /proc/cpuinfo | grep flags

发现该CPU上没有bmi2指令集,所以core掉了。

所以根源是:编译dpdk library的机器的CPU版本更高,支持了bmi2指令,但是运行dpdk的机器的CPU版本更低,不支持bmi2指令。

网上有博文说在编译dpdk的时候将CONFIG_RTE_MACHINE设置成default能解,我们尝试了无果,最后找了一个CPU版本较低的机器编译了整套dpdk library,core未出现。不过这个解法只是权宜之计,长期来看,还是要做好不同CPU和机型的适配工作。

最新文章

  1. css动画 animation
  2. Linux任务计划
  3. Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较
  4. 压缩算法实现之LZ78
  5. 编译linux内核以及depmod的使用
  6. struts2学习笔记(4)——数据类型转换
  7. BZOJ 3123 SDOI2013 森林
  8. 照片提取GPS 转成百度地图坐标
  9. <The Art of Readable Code> 笔记二 (下)
  10. python简单词频统计
  11. Angular中不同的组件间传值与通信的方法
  12. 常见的Dos命令
  13. Docker Hello World
  14. Python-列表-9
  15. nginx伪静态之try_files和rewrite讲解
  16. Ubuntu自带截图工具screenshoot
  17. for之于while的优势
  18. 分布式缓存Memcache和Redis
  19. gradle build scan
  20. 『PyTorch』第二弹重置_Tensor对象

热门文章

  1. springboot配置log4j
  2. appium环境搭建及项目实战
  3. muduo学习笔记(六) 多线程的TcpServer
  4. Effective前端1---chapter 2 用CSS画一个三角形
  5. 牛客练习赛35-函数的魔法-floyd
  6. BZOJ.5338.[TJOI2018]xor(可持久化Trie)
  7. Mac如何彻底卸载Mysql
  8. No compiler is provided in this environment.Perhaps you are running on a JRE rather than a JDK?报错解决
  9. (文件操作)Android相关的File文件操作
  10. nodejs,koa2常用模块