Есть ли ключ, как включить все mempool, mbuf debugs в DPDK. Я использую DPDK 2.2.0., я нашел answers, что не очень полезно в этой версии.dpdk mbuf и сообщения mempool с высоким уровнем журнала
-1
A
ответ
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 назад, просто проверьте имя выходного файла и глобальную переменную, упомянутую выше.
Привет, Кевин, я попытался изменить «build/include/rte_config.h», а также Makefile моего приложения ($ SDK/examples/kni/Makefile), но я не нахожу никаких изменений в выходных журналах. –
@SakthivelThandabani Я изменил ответ, пожалуйста, проверьте, работает ли журнал, а затем настройте его. –
по умолчанию высокий уровень log-level (8) включен, например, в приложениях. Поэтому для проверки цели я понижаю ее до 1 (согласно вашему коду). но все же я получаю все журналы. я просто хочу знать, где я должен был внести изменения для LOG_LEVEL_ERR, так что я могу получить журналы состояния ошибок только. На самом деле я подозреваю, что при запуске моего приложения не выполняется какое-либо распределение mbuf, я просто хочу печатать журналы для них. –