From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A30A3A0597; Tue, 21 Apr 2020 15:03:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DE9931D65F; Tue, 21 Apr 2020 15:00:02 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 69F1F1D63E for ; Tue, 21 Apr 2020 14:59:59 +0200 (CEST) IronPort-SDR: xJJvY65y42y5kMLiPlIro9TViDmD6pNbvo0mvExkO/gDKyvYfspElq2pPZdmMsTwT7DGUXhUK1 5btQwlDdL+Kw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 05:59:59 -0700 IronPort-SDR: Xi9EZNE6BhLvxnzU0dm37OM5HHMY0UR3EosZHkLbCEML7M4Ljx5M2VKfTwnSdbyMBNySRS67+8 vpfwIW98NgUw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,410,1580803200"; d="scan'208";a="279629206" Received: from silpixa00399953.ir.intel.com (HELO silpixa00399953.ger.corp.intel.com) ([10.237.222.53]) by fmsmga004.fm.intel.com with ESMTP; 21 Apr 2020 05:59:56 -0700 From: Ciara Power To: dev@dpdk.org, kevin.laatz@intel.com Cc: reshma.pattan@intel.com, jerinjacobk@gmail.com, david.marchand@redhat.com, keith.wiles@intel.com, mb@smartsharesystems.com, thomas@monjalon.net, Ciara Power , Bruce Richardson Date: Tue, 21 Apr 2020 13:39:46 +0100 Message-Id: <20200421123949.38270-15-ciara.power@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200421123949.38270-1-ciara.power@intel.com> References: <20200319171907.60891-1-ciara.power@intel.com> <20200421123949.38270-1-ciara.power@intel.com> Subject: [dpdk-dev] [PATCH v3 14/17] lib: add telemetry as eal dependency X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch moves telemetry further down the build, and adds it as a dependency for EAL. Telemetry V2 is now configured to build by default, and the legacy support is built when the telemetry config flag is set. Telemetry now has EAL flags, shown below: "--telemetry" = Enables telemetry (this is default if no flags given) "--no-telemetry" = Disables telemetry When telemetry is enabled, it will attempt to open the new socket version, and also the legacy support socket (this will depend on Jansson external dependency and telemetry config flag, as before). Signed-off-by: Ciara Power Signed-off-by: Bruce Richardson --- v2: Telemetry config flag now represents the legacy support being built, and is disabled by default, as in the existing telemetry. --- config/common_base | 2 +- examples/l3fwd-power/Makefile | 6 +---- examples/l3fwd-power/main.c | 8 ++----- examples/l3fwd-power/meson.build | 6 +---- lib/Makefile | 5 ++-- lib/librte_eal/common/eal_common_options.c | 9 ++++++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 4 ++++ lib/librte_eal/freebsd/Makefile | 1 + lib/librte_eal/freebsd/eal.c | 9 ++++++++ lib/librte_eal/freebsd/meson.build | 2 +- lib/librte_eal/linux/Makefile | 1 + lib/librte_eal/linux/eal.c | 9 ++++++++ lib/librte_eal/linux/meson.build | 2 +- lib/librte_eal/meson.build | 5 +++- lib/librte_ethdev/Makefile | 6 +---- lib/librte_ethdev/meson.build | 6 +---- lib/librte_ethdev/rte_ethdev.c | 6 ----- lib/librte_rawdev/Makefile | 6 +---- lib/librte_rawdev/meson.build | 4 +--- lib/librte_rawdev/rte_rawdev.c | 6 ----- lib/librte_telemetry/Makefile | 9 ++++---- lib/librte_telemetry/meson.build | 1 - lib/librte_telemetry/rte_telemetry.h | 3 ++- lib/librte_telemetry/telemetry.c | 27 ++++++---------------- lib/meson.build | 2 +- mk/rte.app.mk | 5 +++- 27 files changed, 69 insertions(+), 82 deletions(-) diff --git a/config/common_base b/config/common_base index c31175f9d6..d3cd7652e5 100644 --- a/config/common_base +++ b/config/common_base @@ -916,7 +916,7 @@ CONFIG_RTE_LIBRTE_BITRATE=y CONFIG_RTE_LIBRTE_LATENCY_STATS=y # -# Compile librte_telemetry +# Compile librte_telemetry legacy support # CONFIG_RTE_LIBRTE_TELEMETRY=n diff --git a/examples/l3fwd-power/Makefile b/examples/l3fwd-power/Makefile index 531a1d81cb..852877c1f2 100644 --- a/examples/l3fwd-power/Makefile +++ b/examples/l3fwd-power/Makefile @@ -60,7 +60,7 @@ else CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) -LDLIBS += -lm +LDLIBS += -lm -lrte_telemetry # workaround for a gcc bug with noreturn attribute # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603 @@ -68,10 +68,6 @@ ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y) CFLAGS_main.o += -Wno-return-type endif -ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y) -LDLIBS += -lrte_telemetry -endif - include $(RTE_SDK)/mk/rte.extapp.mk endif endif diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 5c8538d872..0c3feaa06c 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -46,9 +46,7 @@ #include #include #include -#ifdef RTE_LIBRTE_TELEMETRY #include -#endif #include "perf_core.h" #include "main.h" @@ -2123,7 +2121,7 @@ update_telemetry(__rte_unused struct rte_timer *tim, if (ret < 0) RTE_LOG(WARNING, POWER, "failed to update metrcis\n"); } -#ifdef RTE_LIBRTE_TELEMETRY + static int handle_app_stats(const char *cmd __rte_unused, const char *params __rte_unused, @@ -2141,7 +2139,7 @@ handle_app_stats(const char *cmd __rte_unused, return used; } -#endif + static void telemetry_setup_timer(void) { @@ -2541,10 +2539,8 @@ main(int argc, char **argv) rte_spinlock_init(&stats[lcore_id].telemetry_lock); } rte_timer_init(&telemetry_timer); -#ifdef RTE_LIBRTE_TELEMETRY rte_telemetry_register_cmd("/l3fwd-power/stats", handle_app_stats); -#endif rte_eal_mp_remote_launch(main_telemetry_loop, NULL, SKIP_MASTER); } diff --git a/examples/l3fwd-power/meson.build b/examples/l3fwd-power/meson.build index e7c6be6477..4cd694710d 100644 --- a/examples/l3fwd-power/meson.build +++ b/examples/l3fwd-power/meson.build @@ -12,11 +12,7 @@ if not dpdk_conf.has('RTE_LIBRTE_POWER') endif allow_experimental_apis = true -deps += ['power', 'timer', 'lpm', 'hash', 'metrics'] +deps += ['power', 'timer', 'lpm', 'hash', 'metrics', 'telemetry'] sources = files( 'main.c', 'perf_core.c' ) - -if dpdk_conf.has('RTE_LIBRTE_TELEMETRY') - deps += ['telemetry'] -endif diff --git a/lib/Makefile b/lib/Makefile index c66888340f..91145de3c9 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -4,8 +4,9 @@ include $(RTE_SDK)/mk/rte.vars.mk DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs +DIRS-y += 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 diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index eaba611fae..fa3298dcca 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -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" diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h index a42f349232..c650bc0814 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -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. */ diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h index 9855429e58..225ad4bb59 100644 --- a/lib/librte_eal/common/eal_options.h +++ b/lib/librte_eal/common/eal_options.h @@ -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 }; diff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile index 2d53ce9eef..9ca7141cdb 100644 --- a/lib/librte_eal/freebsd/Makefile +++ b/lib/librte_eal/freebsd/Makefile @@ -18,6 +18,7 @@ LDLIBS += -lexecinfo LDLIBS += -lpthread LDLIBS += -lgcc_s LDLIBS += -lrte_kvargs +LDLIBS += -lrte_telemetry EXPORT_MAP := ../rte_eal_version.map diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c index 80dc9aa78c..73f9a15770 100644 --- a/lib/librte_eal/freebsd/eal.c +++ b/lib/librte_eal/freebsd/eal.c @@ -44,6 +44,7 @@ #include #include #include +#include #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(); diff --git a/lib/librte_eal/freebsd/meson.build b/lib/librte_eal/freebsd/meson.build index 22fc4e8074..e10fd8a16d 100644 --- a/lib/librte_eal/freebsd/meson.build +++ b/lib/librte_eal/freebsd/meson.build @@ -18,4 +18,4 @@ sources += files( 'eal_timer.c', ) -deps += ['kvargs'] +deps += ['kvargs', 'telemetry'] diff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile index fc2316667a..9c3ccdf5bd 100644 --- a/lib/librte_eal/linux/Makefile +++ b/lib/librte_eal/linux/Makefile @@ -19,6 +19,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 diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c index d1e532fc1b..7c89389b9d 100644 --- a/lib/librte_eal/linux/eal.c +++ b/lib/librte_eal/linux/eal.c @@ -51,6 +51,7 @@ #include #include #include +#include #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(); diff --git a/lib/librte_eal/linux/meson.build b/lib/librte_eal/linux/meson.build index ca4f4e9785..7742aa4759 100644 --- a/lib/librte_eal/linux/meson.build +++ b/lib/librte_eal/linux/meson.build @@ -21,7 +21,7 @@ sources += files( 'eal_vfio_mp_sync.c', ) -deps += ['kvargs'] +deps += ['kvargs', 'telemetry'] if has_libnuma == 1 dpdk_conf.set10('RTE_EAL_NUMA_AWARE_HUGEPAGES', true) endif diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build index 0267c3b9d8..e301f45585 100644 --- a/lib/librte_eal/meson.build +++ b/lib/librte_eal/meson.build @@ -11,7 +11,10 @@ subdir(exec_env) subdir(arch_subdir) -deps += 'kvargs' +deps += ['kvargs'] +if not is_windows + deps += ['telemetry'] +endif if dpdk_conf.has('RTE_USE_LIBBSD') ext_deps += libbsd endif diff --git a/lib/librte_ethdev/Makefile b/lib/librte_ethdev/Makefile index ab83d45acf..98714540ca 100644 --- a/lib/librte_ethdev/Makefile +++ b/lib/librte_ethdev/Makefile @@ -11,7 +11,7 @@ LIB = librte_ethdev.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring -LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter +LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter -lrte_telemetry EXPORT_MAP := rte_ethdev_version.map @@ -23,10 +23,6 @@ SRCS-y += rte_tm.c SRCS-y += rte_mtr.c SRCS-y += ethdev_profile.c -ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y) -LDLIBS += -lrte_telemetry -endif - # # Export include files # diff --git a/lib/librte_ethdev/meson.build b/lib/librte_ethdev/meson.build index 0e9d3497a0..efbf6c88c9 100644 --- a/lib/librte_ethdev/meson.build +++ b/lib/librte_ethdev/meson.build @@ -24,8 +24,4 @@ headers = files('rte_ethdev.h', 'rte_tm.h', 'rte_tm_driver.h') -deps += ['net', 'kvargs', 'meter'] - -if dpdk_conf.has('RTE_LIBRTE_TELEMETRY') - deps += ['telemetry'] -endif +deps += ['net', 'kvargs', 'meter', 'telemetry'] diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index fd63104e5d..b5546833a6 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -38,9 +38,7 @@ #include #include #include -#ifdef RTE_LIBRTE_TELEMETRY #include -#endif #include "rte_ethdev.h" #include "rte_ethdev_driver.h" @@ -5192,7 +5190,6 @@ rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da) return result; } -#ifdef RTE_LIBRTE_TELEMETRY static int handle_port_list(const char *cmd __rte_unused, const char *params __rte_unused, @@ -5286,17 +5283,14 @@ handle_port_link_status(const char *cmd __rte_unused, return ret >= buf_len ? -1 : ret; } -#endif RTE_INIT(ethdev_init_log) { rte_eth_dev_logtype = rte_log_register("lib.ethdev"); if (rte_eth_dev_logtype >= 0) rte_log_set_level(rte_eth_dev_logtype, RTE_LOG_INFO); -#ifdef RTE_LIBRTE_TELEMETRY rte_telemetry_register_cmd("/ethdev/list", handle_port_list); rte_telemetry_register_cmd("/ethdev/xstats", handle_port_xstats); rte_telemetry_register_cmd("/ethdev/link_status", handle_port_link_status); -#endif } diff --git a/lib/librte_rawdev/Makefile b/lib/librte_rawdev/Makefile index 5d7c2a582d..99f5d2a471 100644 --- a/lib/librte_rawdev/Makefile +++ b/lib/librte_rawdev/Makefile @@ -9,11 +9,7 @@ LIB = librte_rawdev.a # build flags CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) -LDLIBS += -lrte_eal - -ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y) -LDLIBS += -lrte_telemetry -endif +LDLIBS += -lrte_eal -lrte_telemetry # library source files SRCS-y += rte_rawdev.c diff --git a/lib/librte_rawdev/meson.build b/lib/librte_rawdev/meson.build index 1f23d2a80c..30d363cd2d 100644 --- a/lib/librte_rawdev/meson.build +++ b/lib/librte_rawdev/meson.build @@ -4,6 +4,4 @@ sources = files('rte_rawdev.c') headers = files('rte_rawdev.h', 'rte_rawdev_pmd.h') -if dpdk_conf.has('RTE_LIBRTE_TELEMETRY') - deps += ['telemetry'] -endif +deps += ['telemetry'] diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c index 61fe29110c..df2311701d 100644 --- a/lib/librte_rawdev/rte_rawdev.c +++ b/lib/librte_rawdev/rte_rawdev.c @@ -29,9 +29,7 @@ #include #include #include -#ifdef RTE_LIBRTE_TELEMETRY #include -#endif #include "rte_rawdev.h" #include "rte_rawdev_pmd.h" @@ -547,7 +545,6 @@ rte_rawdev_pmd_release(struct rte_rawdev *rawdev) return 0; } -#ifdef RTE_LIBRTE_TELEMETRY static int handle_dev_list(const char *cmd __rte_unused, const char *params __rte_unused, @@ -619,15 +616,12 @@ handle_dev_xstats(const char *cmd __rte_unused, free(rawdev_xstats); return used; } -#endif RTE_INIT(librawdev_init_log) { librawdev_logtype = rte_log_register("lib.rawdev"); if (librawdev_logtype >= 0) rte_log_set_level(librawdev_logtype, RTE_LOG_INFO); -#ifdef RTE_LIBRTE_TELEMETRY rte_telemetry_register_cmd("/rawdev/list", handle_dev_list); rte_telemetry_register_cmd("/rawdev/xstats", handle_dev_xstats); -#endif } diff --git a/lib/librte_telemetry/Makefile b/lib/librte_telemetry/Makefile index 4b78f2e856..941385f351 100644 --- a/lib/librte_telemetry/Makefile +++ b/lib/librte_telemetry/Makefile @@ -13,17 +13,16 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include CFLAGS += -I$(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include CFLAGS += -pthread -LDLIBS += -lrte_eal LDLIBS += -lpthread EXPORT_MAP := rte_telemetry_version.map # library source files -SRCS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += telemetry.c -SRCS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += telemetry_legacy.c +SRCS-y += telemetry.c +SRCS-y += telemetry_legacy.c # export include files -SYMLINK-$(CONFIG_RTE_LIBRTE_TELEMETRY)-include := rte_telemetry.h -SYMLINK-$(CONFIG_RTE_LIBRTE_TELEMETRY)-include += rte_telemetry_json.h +SYMLINK-y-include := rte_telemetry.h +SYMLINK-y-include += rte_telemetry_json.h include $(RTE_SDK)/mk/rte.lib.mk diff --git a/lib/librte_telemetry/meson.build b/lib/librte_telemetry/meson.build index b914a67fa7..d807b40f5c 100644 --- a/lib/librte_telemetry/meson.build +++ b/lib/librte_telemetry/meson.build @@ -6,4 +6,3 @@ includes = [global_inc] sources = files('telemetry.c', 'telemetry_legacy.c') headers = files('rte_telemetry.h', 'rte_telemetry_json.h') includes += include_directories('../librte_metrics') -dpdk_app_link_libraries += ['telemetry'] diff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h index fafc889eba..9308d1cca2 100644 --- a/lib/librte_telemetry/rte_telemetry.h +++ b/lib/librte_telemetry/rte_telemetry.h @@ -86,5 +86,6 @@ rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn); */ __rte_experimental int -rte_telemetry_init(void); +rte_telemetry_init(const char *runtime_dir, const char **err_str); + #endif diff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c index 6a52c91d70..aeaa5925c3 100644 --- a/lib/librte_telemetry/telemetry.c +++ b/lib/librte_telemetry/telemetry.c @@ -14,7 +14,6 @@ #include #include #include -#include #include "rte_telemetry.h" #include "rte_telemetry_legacy.h" @@ -298,28 +297,16 @@ telemetry_v2_init(const char *runtime_dir) } 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()) != 0) { - error_str = telemetry_log_error; - printf("Error initialising telemetry - %s", error_str); + if (telemetry_v2_init(runtime_dir) != 0) { + *err_str = telemetry_log_error; + printf("Error initialising telemetry - %s", *err_str); return -1; } - if (telemetry_legacy_init(rte_eal_get_runtime_dir()) != 0) { - error_str = telemetry_log_error; - printf("No telemetry legacy support- %s", error_str); + if (telemetry_legacy_init(runtime_dir) != 0) { + *err_str = telemetry_log_error; + 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); -} diff --git a/lib/meson.build b/lib/meson.build index 85977a085e..7a10ccbafe 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -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 diff --git a/mk/rte.app.mk b/mk/rte.app.mk index fdaf3ec2c0..76e8bc95f9 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -52,6 +52,9 @@ _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 +ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y) +_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -ljansson +endif _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 +77,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-y += -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 +94,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 -- 2.17.1