【问题标题】:Error when running DPDK app on valgrind在 valgrind 上运行 DPDK 应用程序时出错
【发布时间】:2016-05-23 08:58:50
【问题描述】:

当我在 valgrind 上运行基于 DPDK 的应用程序时,它无法执行并引发错误

错误:此系统不支持“RDRAND”。请检查 RTE_MACHINE 设置正确。

我的 CPU 支持 RDRAND,但它仍然抛出相同的错误。为了让 valgrind 支持我的应用程序正在使用的大页面,我正在使用以下 valgrind 的修补版本。 https://github.com/bisdn/valgrind-hugepages.git

【问题讨论】:

  • 有同样的问题。 valgrind 的补丁版本过去可以很好地与旧的 DPDK 配合使用。

标签: c memory-leaks valgrind dpdk


【解决方案1】:

我在 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

【讨论】:

    【解决方案2】:

    RDRAND 是在 IvyBridge 上引入的,您可以使用“CONFIG_RTE_MACHINE”使用特定的指令子集构建 dpdk。对于这种情况,您可以使用 SandyBridge 作为机器。

    修改$RTE_SDK/$RTE_TARGET/.config,设置CONFIG_RTE_MACHINE="snb",重建DPDK库(make -C $RTE_SDK/$RTE_TARGET)。

    【讨论】:

      【解决方案3】:

      我找到了解决这个问题的另一种方法。 DPDK 支持EXTRA_CFLAGS 变量,您可以使用该变量为 GCC 指定您自己的标志。初始 makefile 使用选项 -dN -E 运行 gcc 以检查平台支持的内容。如果您想禁用某些指令集,例如RDRAND,你可以指定选项

      export EXTRA_CFLAGS=-mno-rdrnd

      这将禁用内置 DPDK 库二进制文件中的 RDRAND。

      【讨论】:

        猜你喜欢
        • 2019-04-06
        • 2013-09-21
        • 1970-01-01
        • 1970-01-01
        • 2011-11-01
        • 2018-09-20
        • 2013-09-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多