是否有任何线索,如何在 DPDK 中启用所有 mempool、mbuf 调试。我正在使用 DPDK 2.2.0。,我找到了一些对这个版本没有多大帮助的答案。
问问题
1299 次
1 回答
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回来,只需检查上面提到的输出文件名和全局变量。
于 2016-06-06T08:05:17.533 回答