@@ -919,7 +919,7 @@ CONFIG_RTE_LIBRTE_LATENCY_STATS=y
#
# Compile librte_telemetry
#
-CONFIG_RTE_LIBRTE_TELEMETRY=n
+CONFIG_RTE_LIBRTE_TELEMETRY=y
#
# Compile librte_rcu
@@ -4,8 +4,9 @@
include $(RTE_SDK)/mk/rte.vars.mk
DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs
+DIRS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += librte_telemetry
DIRS-$(CONFIG_RTE_LIBRTE_EAL) += librte_eal
-DEPDIRS-librte_eal := librte_kvargs
+DEPDIRS-librte_eal := librte_kvargs librte_telemetry
DIRS-$(CONFIG_RTE_LIBRTE_PCI) += librte_pci
DEPDIRS-librte_pci := librte_eal
DIRS-$(CONFIG_RTE_LIBRTE_RING) += librte_ring
@@ -22,8 +23,6 @@ DIRS-$(CONFIG_RTE_LIBRTE_CFGFILE) += librte_cfgfile
DEPDIRS-librte_cfgfile := librte_eal
DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += librte_cmdline
DEPDIRS-librte_cmdline := librte_eal librte_net
-DIRS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += librte_telemetry
-DEPDIRS-librte_telemetry := librte_eal
DIRS-$(CONFIG_RTE_LIBRTE_ETHER) += librte_ethdev
DEPDIRS-librte_ethdev := librte_net librte_eal librte_mempool librte_ring
DEPDIRS-librte_ethdev += librte_mbuf
@@ -86,6 +86,8 @@ eal_long_options[] = {
{OPT_LEGACY_MEM, 0, NULL, OPT_LEGACY_MEM_NUM },
{OPT_SINGLE_FILE_SEGMENTS, 0, NULL, OPT_SINGLE_FILE_SEGMENTS_NUM},
{OPT_MATCH_ALLOCATIONS, 0, NULL, OPT_MATCH_ALLOCATIONS_NUM},
+ {OPT_TELEMETRY, 0, NULL, OPT_TELEMETRY_NUM },
+ {OPT_NO_TELEMETRY, 0, NULL, OPT_NO_TELEMETRY_NUM },
{0, 0, NULL, 0 }
};
@@ -1455,6 +1457,11 @@ eal_parse_common_option(int opt, const char *optarg,
return -1;
}
break;
+ case OPT_TELEMETRY_NUM:
+ break;
+ case OPT_NO_TELEMETRY_NUM:
+ conf->no_telemetry = 1;
+ break;
/* don't know what to do, leave this to caller */
default:
@@ -1698,6 +1705,8 @@ eal_common_usage(void)
" --"OPT_IN_MEMORY" Operate entirely in memory. This will\n"
" disable secondary process support\n"
" --"OPT_BASE_VIRTADDR" Base virtual address\n"
+ " --"OPT_TELEMETRY" Enable telemetry support (on by default)\n"
+ " --"OPT_NO_TELEMETRY" Disable telemetry support\n"
"\nEAL options for DEBUG use only:\n"
" --"OPT_HUGE_UNLINK" Unlink hugepage files after init\n"
" --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n"
@@ -82,6 +82,7 @@ struct internal_config {
rte_cpuset_t ctrl_cpuset; /**< cpuset for ctrl threads */
volatile unsigned int init_complete;
/**< indicates whether EAL has completed initialization */
+ unsigned int no_telemetry; /**< true to disable Telemetry */
};
extern struct internal_config internal_config; /**< Global EAL configuration. */
@@ -69,6 +69,10 @@ enum {
OPT_IOVA_MODE_NUM,
#define OPT_MATCH_ALLOCATIONS "match-allocations"
OPT_MATCH_ALLOCATIONS_NUM,
+#define OPT_TELEMETRY "telemetry"
+ OPT_TELEMETRY_NUM,
+#define OPT_NO_TELEMETRY "no-telemetry"
+ OPT_NO_TELEMETRY_NUM,
OPT_LONG_MAX_NUM
};
@@ -19,6 +19,7 @@ LDLIBS += -lexecinfo
LDLIBS += -lpthread
LDLIBS += -lgcc_s
LDLIBS += -lrte_kvargs
+LDLIBS += -lrte_telemetry
EXPORT_MAP := ../../rte_eal_version.map
@@ -44,6 +44,7 @@
#include <rte_option.h>
#include <rte_atomic.h>
#include <malloc_heap.h>
+#include <rte_telemetry.h>
#include "eal_private.h"
#include "eal_thread.h"
@@ -952,6 +953,14 @@ rte_eal_init(int argc, char **argv)
rte_eal_init_alert("Cannot clear runtime directory\n");
return -1;
}
+ if (!internal_config.no_telemetry) {
+ const char *error_str;
+ if (rte_telemetry_init(rte_eal_get_runtime_dir(),
+ &error_str) != 0) {
+ rte_eal_init_alert(error_str);
+ return -1;
+ }
+ }
eal_mcfg_complete();
@@ -19,4 +19,4 @@ env_sources = files('eal_alarm.c',
'eal_dev.c'
)
-deps += ['kvargs']
+deps += ['kvargs', 'telemetry']
@@ -23,6 +23,7 @@ LDLIBS += -lpthread
LDLIBS += -lgcc_s
LDLIBS += -lrt
LDLIBS += -lrte_kvargs
+LDLIBS += -lrte_telemetry
ifeq ($(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),y)
LDLIBS += -lnuma
endif
@@ -51,6 +51,7 @@
#include <malloc_heap.h>
#include <rte_vfio.h>
#include <rte_option.h>
+#include <rte_telemetry.h>
#include "eal_private.h"
#include "eal_thread.h"
@@ -1291,6 +1292,14 @@ rte_eal_init(int argc, char **argv)
rte_eal_init_alert("Cannot clear runtime directory\n");
return -1;
}
+ if (!internal_config.no_telemetry) {
+ const char *error_str;
+ if (rte_telemetry_init(rte_eal_get_runtime_dir(),
+ &error_str) != 0) {
+ rte_eal_init_alert(error_str);
+ return -1;
+ }
+ }
eal_mcfg_complete();
@@ -25,7 +25,7 @@ env_sources = files('eal_alarm.c',
'eal_dev.c',
)
-deps += ['kvargs']
+deps += ['kvargs', 'telemetry']
if has_libnuma == 1
dpdk_conf.set10('RTE_EAL_NUMA_AWARE_HUGEPAGES', true)
endif
@@ -13,7 +13,7 @@ dpdk_conf.set('RTE_EXEC_ENV_' + exec_env.to_upper(), 1)
subdir(exec_env + '/eal')
allow_experimental_apis = true
-deps += 'kvargs'
+deps += ['kvargs', 'telemetry']
if dpdk_conf.has('RTE_USE_LIBBSD')
ext_deps += libbsd
endif
@@ -14,7 +14,6 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include/arch/$(ARCH_DIR)/
CFLAGS += -pthread
-LDLIBS += -lrte_eal
LDLIBS += -lpthread
EXPORT_MAP := rte_telemetry_version.map
@@ -8,4 +8,3 @@ sources = files('telemetry.c', 'telemetry_legacy.c')
headers = files('rte_telemetry.h')
cflags += '-DALLOW_EXPERIMENTAL_API'
includes += include_directories('../librte_metrics')
-dpdk_app_link_libraries += ['telemetry']
@@ -75,6 +75,6 @@ int rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn);
* -1 on failure.
*/
__rte_experimental
-int rte_telemetry_init(void);
+int rte_telemetry_init(const char *runtime_dir, const char **err_str);
#endif
@@ -13,7 +13,6 @@
#include <rte_string_fns.h>
#include <rte_common.h>
#include <rte_spinlock.h>
-#include <rte_option.h>
#include "rte_telemetry.h"
#include "rte_telemetry_legacy.h"
@@ -279,26 +278,13 @@ telemetry_v2_init(const char *runtime_dir, const char **err_str)
}
int32_t
-rte_telemetry_init(void)
+rte_telemetry_init(const char *runtime_dir, const char **err_str)
{
- const char *error_str;
- if (telemetry_v2_init(rte_eal_get_runtime_dir(), &error_str) != 0) {
- printf("Error initialising telemetry - %s", error_str);
+ if (telemetry_v2_init(runtime_dir, err_str) != 0) {
+ printf("Error initialising telemetry - %s", *err_str);
return -1;
}
- if (telemetry_legacy_init(rte_eal_get_runtime_dir(), &error_str)
- != 0)
- printf("No telemetry legacy support- %s", error_str);
+ if (telemetry_legacy_init(runtime_dir, err_str) != 0)
+ printf("No telemetry legacy support- %s", *err_str);
return 0;
}
-
-static struct rte_option option = {
- .name = "telemetry",
- .usage = "Enable telemetry backend",
- .cb = &rte_telemetry_init,
- .enabled = 0
-};
-
-RTE_INIT(telemetry_register_op) {
- rte_option_register(&option);
-}
@@ -10,8 +10,8 @@
# core libs which are widely reused, so their deps are kept to a minimum.
libraries = [
'kvargs', # eal depends on kvargs
+ 'telemetry', # basic info querying capability about dpdk processes
'eal', # everything depends on eal
- 'telemetry',
'ring', 'mempool', 'mbuf', 'net', 'meter', 'ethdev', 'pci', # core
'cmdline',
'metrics', # bitrate/latency stats depends on this
@@ -52,6 +52,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += -lrte_acl
_LDLIBS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += -lrte_jobstats
_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += --whole-archive
_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -lrte_metrics
+_LDLIBS-y += $(shell $(PKG_CONFIG) --libs jansson 2> /dev/null)
_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += --no-whole-archive
_LDLIBS-$(CONFIG_RTE_LIBRTE_BITRATE) += -lrte_bitratestats
_LDLIBS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += -lrte_latencystats
@@ -74,6 +75,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_HASH) += -lrte_hash
_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER) += -lrte_member
_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost
_LDLIBS-$(CONFIG_RTE_LIBRTE_KVARGS) += -lrte_kvargs
+_LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += -lrte_telemetry
_LDLIBS-$(CONFIG_RTE_LIBRTE_MBUF) += -lrte_mbuf
_LDLIBS-$(CONFIG_RTE_LIBRTE_NET) += -lrte_net
_LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lrte_ethdev
@@ -90,7 +92,6 @@ _LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += -lrte_mempool_ring
_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += -lrte_mempool_octeontx2
_LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring
_LDLIBS-$(CONFIG_RTE_LIBRTE_PCI) += -lrte_pci
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += -lrte_telemetry -ljansson
_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrte_eal
_LDLIBS-$(CONFIG_RTE_LIBRTE_CMDLINE) += -lrte_cmdline
_LDLIBS-$(CONFIG_RTE_LIBRTE_REORDER) += -lrte_reorder