- 问题现象
在某些环境运行DPDK的app程序时,可能会出现如下问题不支持RDRAND问题:
- 解决方法
在编译之前,可以在DPDK根目录下使用grep命令查一下哪里有关于RDRAND的配置设置,这里在第一个meson.build里面就有相关的配置。
打开文件后可以发现RDRAND是遍历optional_flags得来的,这里将上面的遍历项删掉,然后再重新编译即可。
- 总结
这里的原因是RDRAND是CPU的一个指令集,不是所有的CPU都支持这个指令,为了能让程序通用,所以在编译的时候我们不需要这个指令集,就可以将这个配置删掉,从而可以在不支持RDRAND的CPU上运行。