失败后的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和机型的适配工作。

链接了dpdk的进程启动core在 Illegal instruction的更多相关文章

  1. Android系统init进程启动及init.rc全解析

    转:https://blog.csdn.net/zhonglunshun/article/details/78615980 服务启动机制system/core/init/init.c文件main函数中 ...

  2. 【系统篇】从C/C++语言到进程启动背后的故事

    我们需要运行一个程序或者软件,双击之即可完成.不过从你双击到程序的窗口产生的这“短暂”的时间内,Windows为你做了很多的工作. 首先,系统有一个进程监测到了你的双击操作,这个进程就是系统shell ...

  3. Android应用程序进程启动过程的源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址: http://blog.csdn.net/luoshengyang/article/details/6747696 Android 应用程序框架层创 ...

  4. Android 跨进程启动Activity黑屏(白屏)的三种解决方案

    原文链接:http://www.cnblogs.com/feidu/p/8057012.html 当Android跨进程启动Activity时,过程界面很黑屏(白屏)短暂时间(几百毫秒?).当然从桌面 ...

  5. Zygote及System进程启动

    1.  init 根据init.rc 运行 app_process, 并携带‘--zygote' 和 ’--startSystemServer' 参数. 2.  AndroidRuntime.cpp: ...

  6. 笔记:Zygote和SystemServer进程启动过程

    简述 Android设备启动过程中,先是Linux内核加载完,接着Android中的第一个进程init启动,它会启动一些需要开机启动的进程. Zygote就是进程init启动起来的.Android中所 ...

  7. Windows/Linux用户态监控进程启动事件方法

    catalogue . windows wmi监控进程启动 . linux netlink监控进程启动 1. windows wmi监控进程启动 from threading import Threa ...

  8. Android系统启动流程(三)解析SystemServer进程启动过程

    1.Zygote启动SystemServer进程 在上一篇文章中我们讲到在ZygoteInit.java的startSystemServer函数中启动了SyetemServer进程,如下所示. fra ...

  9. Android系统启动流程(一)解析init进程启动过程

    整体流程大致如下:     1.init简介 init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等.in ...

随机推荐

  1. pageHelper多个sql分页

    之前有个需求,在一个页面中需要有多个sql分页查询然后放到一个list中,展示,但是会出现一个bug,就是每次分页都会展示第一条查出的所有的数据: 第一页 第二页 因为是截的生产环境,第一条数据被处理 ...

  2. JavaEE 之 Spring(三)

    1.Spring Web MVC a.定义:是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是 ...

  3. XX-Net的局域网共享代理方法

    局域网内有一台电脑安装了XX-net,将其共享给局域网内其他电脑,让其他电脑经这台电脑的XX-net配置访问网站. 一.电脑端操作1.在XXnet/data/gae_proxy目录下修改config. ...

  4. 【C#】获取URL上的参数

    图是不知道什么时候截的,给不了原链接了QAQ

  5. 路由网关---zuul

    Zuul:Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架.Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门. 在微服务盛行的时代,客户端与系统之 ...

  6. 自己总结的C#编码规范--1.命名约定篇

    命名约定 我们在命名标识符时(包括参数,常量,变量),应使用单词的首字母大小写来区分一个标识符中的多个单词,如UserName. PascalCasing PascalCasing包含一到多个单词,每 ...

  7. VC6.0学习C语言入门SDK

    度网盘链接 VC6.0    密码:t6bd VS2010 密码:3of2 C语言入门教程 在线视频地址(PS此链接摘抄至博主lellansin) Acfun.tv:http://www.acfun. ...

  8. 英语口语练习系列-C29-鸟类-辨别身份-断弦的琴

    鸟类 sparrow sparrow 英 ['spærəʊ] 美 ['spæro] n. 麻雀:矮小的人 swallow swallow 英 ['swɒləʊ] 美 ['swɑlo] vt. 忍受:吞 ...

  9. Python3之弹性力学——应力张量1

    题目 已知某点的应力张量为: \[ \left[ \begin{array}{ccc} \sigma_{x} &\tau_{xy} &\tau_{xz}\\ \tau_{yx} &am ...

  10. Scrapy基础(八)————图片下载后将本地路径添加到Item中

    前边讲到简单的图片下载,但是怎样将图片的本地路径和存储在Item中的数据对应起来,所以本篇博文讲解到如何将 本地的下载后的图片路径写入到Item中 思路:自定义pipline,多加个管道,该管道继承下 ...