Vin*_*eet 1 c valgrind memory-leaks dpdk
当我在valgrind上运行基于DPDK的应用程序时,它无法执行并引发错误
错误:此系统不支持“ RDRAND”。请检查是否正确设置了RTE_MACHINE。
我的CPU支持RDRAND,但仍然抛出相同的错误。为了使valgrind支持我的应用程序正在使用的大页面,我使用了以下valgrind修补版本。 https://github.com/bisdn/valgrind-hugepages.git
小智 5
我在Haswell架构CPU上遇到了同样的问题,并且能够通过修改Makefile之一来删除少数选项来解决此问题。具体来说,是AVX / AVX2,RDRND,FSGSBASE和F16C。您可能需要删除valgrind拒绝的其他选项,然后重新编译DPDK,这对我来说是一个反复的过程。使用.config文件可能有一种更优雅的方法,但我没有找到它。看到这个补丁:
diff -u dpdk-2.2.0-orig/mk/rte.cpuflags.mk dpdk-2.2.0/mk/rte.cpuflags.mk
--- dpdk-2.2.0-orig/mk/rte.cpuflags.mk^I2015-12-15 12:06:58.000000000 -0500
+++ dpdk-2.2.0/mk/rte.cpuflags.mk^I2016-08-24 08:53:22.911258783 -0400
@@ -69,26 +69,6 @@
CPUFLAGS += PCLMULQDQ
endif
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX__),)
-CPUFLAGS += AVX
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__RDRND__),)
-CPUFLAGS += RDRAND
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__FSGSBASE__),)
-CPUFLAGS += FSGSBASE
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__F16C__),)
-CPUFLAGS += F16C
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX2__),)
-CPUFLAGS += AVX2
-endif
-
# IBM Power CPU flags
ifneq ($(filter $(AUTO_CPUFLAGS),__PPC64__),)
CPUFLAGS += PPC64
Run Code Online (Sandbox Code Playgroud)