具有高日志级别的dpdk mbuf和mempool消息

时间:2016-06-06 07:18:45

标签: c linux dpdk

有什么线索,如何在DPDK中启用所有mempool,mbuf调试。我正在使用DPDK 2.2.0。,我发现了一些answers对这个版本没什么帮助。

1 个答案:

答案 0 :(得分:1)

您可以检查DPDK源代码rte_log.h,以检查RTE_LOG的定义。

你可以

1) define RTE_LOG_LEVEL in Makefile, or
2) define RTE_LOG_LEVEL in rte_log.h before RTE_LOG, e.g. 
      #define RTE_LOG_LEVEL   8

然后所有低级调试信息都将是日志文件,如果您愿意,也可以将此宏重新定义为打印到控制台。

在DPDK中,日志也由 rte_logs.type 控制,需要检查值,每个模块都有点,请参阅rte_log.h RTE_LOGTYPE_XXX。

如果以上操作无效,请尝试以下

#define RTE_LOG_LEVEL   8
#define RTE_LOG(l, t, ...)                  \
    (void)((RTE_LOG_ ## l <= RTE_LOG_LEVEL) ?       \
     rte_log(RTE_LOG_ ## l,                 \
         RTE_LOGTYPE_ ## t, # t ": " __VA_ARGS__) : \
 0)

在eal_common_log.c

int rte_vlog(uint32_t level, uint32_t logtype, const char *format, va_list ap)
{
    ret = printf(format, ap);
    return ret;
}

重新编译整个DPDK并检查是否有日志产生。如果这项工作,然后返回chnage rte_vlog ,只需检查上面提到的输出文件名和全局变量。