qemu模拟机下Spdk安装时错误处理
我在spdk安装时,报错了类似error: inlining failed in call to ‘always_inline’ ‘_nm_alignr_epi8’: target specific option
/usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:185:1: error: inlining failed in call to always_inline ‘_mm_alignr_epi8’: target specific option mismatch
_mm_alignr_epi8(__m128i __X, __m128i __Y, const int __N)
^~~~~~~~~~~~~~~
In file included from /home/ubuntu/spdk/dpdk/build/include/rte_mempool.h:51:0,
from env.c:41:
/home/ubuntu/spdk/dpdk/build/include/rte_memcpy.h:612:13: note: called from here
_mm_storeu_si128((__m128i *)((uint8_t *)dst + 0 * 16), _mm_alignr_epi8(xmm1, xmm0, offset));
这样的报错在https://github.com/spdk/spdk/issues/848中被提到过,但是原文中并没有提供解决方法
原理是可能使用模拟的CPU模式中缺少了SSE数据集
解决方法是在qemu-system-x86_64的命令中加入-cpu host引入主机电脑配置
对于我的电脑 我使用-cpu host会报错qemu-system-x86_64: unable to find CPU model ‘host’
所以可以使用-cpu qemu64,ssse3,sse4.1,sse4.2来处理
引入sse数据集