get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/69025/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 69025,
    "url": "http://patches.dpdk.org/api/patches/69025/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200421123949.38270-15-ciara.power@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200421123949.38270-15-ciara.power@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200421123949.38270-15-ciara.power@intel.com",
    "date": "2020-04-21T12:39:46",
    "name": "[v3,14/17] lib: add telemetry as eal dependency",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "06e5daca6027a3949a5c664caa38d7016aee730e",
    "submitter": {
        "id": 978,
        "url": "http://patches.dpdk.org/api/people/978/?format=api",
        "name": "Power, Ciara",
        "email": "ciara.power@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200421123949.38270-15-ciara.power@intel.com/mbox/",
    "series": [
        {
            "id": 9543,
            "url": "http://patches.dpdk.org/api/series/9543/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=9543",
            "date": "2020-04-21T12:39:32",
            "name": "update and simplify telemetry library.",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/9543/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/69025/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/69025/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A30A3A0597;\n\tTue, 21 Apr 2020 15:03:15 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DE9931D65F;\n\tTue, 21 Apr 2020 15:00:02 +0200 (CEST)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by dpdk.org (Postfix) with ESMTP id 69F1F1D63E\n for <dev@dpdk.org>; Tue, 21 Apr 2020 14:59:59 +0200 (CEST)",
            "from fmsmga004.fm.intel.com ([10.253.24.48])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 21 Apr 2020 05:59:59 -0700",
            "from silpixa00399953.ir.intel.com (HELO\n silpixa00399953.ger.corp.intel.com) ([10.237.222.53])\n by fmsmga004.fm.intel.com with ESMTP; 21 Apr 2020 05:59:56 -0700"
        ],
        "IronPort-SDR": [
            "\n xJJvY65y42y5kMLiPlIro9TViDmD6pNbvo0mvExkO/gDKyvYfspElq2pPZdmMsTwT7DGUXhUK1\n 5btQwlDdL+Kw==",
            "\n Xi9EZNE6BhLvxnzU0dm37OM5HHMY0UR3EosZHkLbCEML7M4Ljx5M2VKfTwnSdbyMBNySRS67+8\n vpfwIW98NgUw=="
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.72,410,1580803200\"; d=\"scan'208\";a=\"279629206\"",
        "From": "Ciara Power <ciara.power@intel.com>",
        "To": "dev@dpdk.org,\n\tkevin.laatz@intel.com",
        "Cc": "reshma.pattan@intel.com, jerinjacobk@gmail.com, david.marchand@redhat.com,\n keith.wiles@intel.com, mb@smartsharesystems.com, thomas@monjalon.net,\n Ciara Power <ciara.power@intel.com>,\n Bruce Richardson <bruce.richardson@intel.com>",
        "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>\n <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 <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This patch moves telemetry further down the build, and adds it as a\ndependency for EAL. Telemetry V2 is now configured to build by default,\nand the legacy support is built when the telemetry config flag is set.\n\nTelemetry now has EAL flags, shown below:\n\"--telemetry\" = Enables telemetry (this is default if no flags given)\n\"--no-telemetry\" = Disables telemetry\n\nWhen telemetry is enabled, it will attempt to open the new socket\nversion, and also the legacy support socket (this will depend on Jansson\nexternal dependency and telemetry config flag, as before).\n\nSigned-off-by: Ciara Power <ciara.power@intel.com>\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\n\n---\nv2: Telemetry config flag now represents the legacy support being built,\n    and is disabled by default, as in the existing telemetry.\n---\n config/common_base                         |  2 +-\n examples/l3fwd-power/Makefile              |  6 +----\n examples/l3fwd-power/main.c                |  8 ++-----\n examples/l3fwd-power/meson.build           |  6 +----\n lib/Makefile                               |  5 ++--\n lib/librte_eal/common/eal_common_options.c |  9 ++++++++\n lib/librte_eal/common/eal_internal_cfg.h   |  1 +\n lib/librte_eal/common/eal_options.h        |  4 ++++\n lib/librte_eal/freebsd/Makefile            |  1 +\n lib/librte_eal/freebsd/eal.c               |  9 ++++++++\n lib/librte_eal/freebsd/meson.build         |  2 +-\n lib/librte_eal/linux/Makefile              |  1 +\n lib/librte_eal/linux/eal.c                 |  9 ++++++++\n lib/librte_eal/linux/meson.build           |  2 +-\n lib/librte_eal/meson.build                 |  5 +++-\n lib/librte_ethdev/Makefile                 |  6 +----\n lib/librte_ethdev/meson.build              |  6 +----\n lib/librte_ethdev/rte_ethdev.c             |  6 -----\n lib/librte_rawdev/Makefile                 |  6 +----\n lib/librte_rawdev/meson.build              |  4 +---\n lib/librte_rawdev/rte_rawdev.c             |  6 -----\n lib/librte_telemetry/Makefile              |  9 ++++----\n lib/librte_telemetry/meson.build           |  1 -\n lib/librte_telemetry/rte_telemetry.h       |  3 ++-\n lib/librte_telemetry/telemetry.c           | 27 ++++++----------------\n lib/meson.build                            |  2 +-\n mk/rte.app.mk                              |  5 +++-\n 27 files changed, 69 insertions(+), 82 deletions(-)",
    "diff": "diff --git a/config/common_base b/config/common_base\nindex c31175f9d6..d3cd7652e5 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -916,7 +916,7 @@ CONFIG_RTE_LIBRTE_BITRATE=y\n CONFIG_RTE_LIBRTE_LATENCY_STATS=y\n \n #\n-# Compile librte_telemetry\n+# Compile librte_telemetry legacy support\n #\n CONFIG_RTE_LIBRTE_TELEMETRY=n\n \ndiff --git a/examples/l3fwd-power/Makefile b/examples/l3fwd-power/Makefile\nindex 531a1d81cb..852877c1f2 100644\n--- a/examples/l3fwd-power/Makefile\n+++ b/examples/l3fwd-power/Makefile\n@@ -60,7 +60,7 @@ else\n CFLAGS += -DALLOW_EXPERIMENTAL_API\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n-LDLIBS += -lm\n+LDLIBS += -lm -lrte_telemetry\n \n # workaround for a gcc bug with noreturn attribute\n # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603\n@@ -68,10 +68,6 @@ ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)\n CFLAGS_main.o += -Wno-return-type\n endif\n \n-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)\n-LDLIBS += -lrte_telemetry\n-endif\n-\n include $(RTE_SDK)/mk/rte.extapp.mk\n endif\n endif\ndiff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c\nindex 5c8538d872..0c3feaa06c 100644\n--- a/examples/l3fwd-power/main.c\n+++ b/examples/l3fwd-power/main.c\n@@ -46,9 +46,7 @@\n #include <rte_spinlock.h>\n #include <rte_power_empty_poll.h>\n #include <rte_metrics.h>\n-#ifdef RTE_LIBRTE_TELEMETRY\n #include <rte_telemetry.h>\n-#endif\n \n #include \"perf_core.h\"\n #include \"main.h\"\n@@ -2123,7 +2121,7 @@ update_telemetry(__rte_unused struct rte_timer *tim,\n \tif (ret < 0)\n \t\tRTE_LOG(WARNING, POWER, \"failed to update metrcis\\n\");\n }\n-#ifdef RTE_LIBRTE_TELEMETRY\n+\n static int\n handle_app_stats(const char *cmd __rte_unused,\n \t\tconst char *params __rte_unused,\n@@ -2141,7 +2139,7 @@ handle_app_stats(const char *cmd __rte_unused,\n \n \treturn used;\n }\n-#endif\n+\n static void\n telemetry_setup_timer(void)\n {\n@@ -2541,10 +2539,8 @@ main(int argc, char **argv)\n \t\t\trte_spinlock_init(&stats[lcore_id].telemetry_lock);\n \t\t}\n \t\trte_timer_init(&telemetry_timer);\n-#ifdef RTE_LIBRTE_TELEMETRY\n \t\trte_telemetry_register_cmd(\"/l3fwd-power/stats\",\n \t\t\t\thandle_app_stats);\n-#endif\n \t\trte_eal_mp_remote_launch(main_telemetry_loop, NULL,\n \t\t\t\t\t\tSKIP_MASTER);\n \t}\ndiff --git a/examples/l3fwd-power/meson.build b/examples/l3fwd-power/meson.build\nindex e7c6be6477..4cd694710d 100644\n--- a/examples/l3fwd-power/meson.build\n+++ b/examples/l3fwd-power/meson.build\n@@ -12,11 +12,7 @@ if not dpdk_conf.has('RTE_LIBRTE_POWER')\n endif\n \n allow_experimental_apis = true\n-deps += ['power', 'timer', 'lpm', 'hash', 'metrics']\n+deps += ['power', 'timer', 'lpm', 'hash', 'metrics', 'telemetry']\n sources = files(\n \t'main.c', 'perf_core.c'\n )\n-\n-if dpdk_conf.has('RTE_LIBRTE_TELEMETRY')\n-\tdeps += ['telemetry']\n-endif\ndiff --git a/lib/Makefile b/lib/Makefile\nindex c66888340f..91145de3c9 100644\n--- a/lib/Makefile\n+++ b/lib/Makefile\n@@ -4,8 +4,9 @@\n include $(RTE_SDK)/mk/rte.vars.mk\n \n DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs\n+DIRS-y += librte_telemetry\n DIRS-$(CONFIG_RTE_LIBRTE_EAL) += librte_eal\n-DEPDIRS-librte_eal := librte_kvargs\n+DEPDIRS-librte_eal := librte_kvargs librte_telemetry\n DIRS-$(CONFIG_RTE_LIBRTE_PCI) += librte_pci\n DEPDIRS-librte_pci := librte_eal\n DIRS-$(CONFIG_RTE_LIBRTE_RING) += librte_ring\n@@ -22,8 +23,6 @@ DIRS-$(CONFIG_RTE_LIBRTE_CFGFILE) += librte_cfgfile\n DEPDIRS-librte_cfgfile := librte_eal\n DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += librte_cmdline\n DEPDIRS-librte_cmdline := librte_eal librte_net\n-DIRS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += librte_telemetry\n-DEPDIRS-librte_telemetry := librte_eal\n DIRS-$(CONFIG_RTE_LIBRTE_ETHER) += librte_ethdev\n DEPDIRS-librte_ethdev := librte_net librte_eal librte_mempool librte_ring\n DEPDIRS-librte_ethdev += librte_mbuf\ndiff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c\nindex eaba611fae..fa3298dcca 100644\n--- a/lib/librte_eal/common/eal_common_options.c\n+++ b/lib/librte_eal/common/eal_common_options.c\n@@ -86,6 +86,8 @@ eal_long_options[] = {\n \t{OPT_LEGACY_MEM,        0, NULL, OPT_LEGACY_MEM_NUM       },\n \t{OPT_SINGLE_FILE_SEGMENTS, 0, NULL, OPT_SINGLE_FILE_SEGMENTS_NUM},\n \t{OPT_MATCH_ALLOCATIONS, 0, NULL, OPT_MATCH_ALLOCATIONS_NUM},\n+\t{OPT_TELEMETRY,         0, NULL, OPT_TELEMETRY_NUM        },\n+\t{OPT_NO_TELEMETRY,      0, NULL, OPT_NO_TELEMETRY_NUM     },\n \t{0,                     0, NULL, 0                        }\n };\n \n@@ -1455,6 +1457,11 @@ eal_parse_common_option(int opt, const char *optarg,\n \t\t\treturn -1;\n \t\t}\n \t\tbreak;\n+\tcase OPT_TELEMETRY_NUM:\n+\t\tbreak;\n+\tcase OPT_NO_TELEMETRY_NUM:\n+\t\tconf->no_telemetry = 1;\n+\t\tbreak;\n \n \t/* don't know what to do, leave this to caller */\n \tdefault:\n@@ -1698,6 +1705,8 @@ eal_common_usage(void)\n \t       \"  --\"OPT_IN_MEMORY\"   Operate entirely in memory. This will\\n\"\n \t       \"                      disable secondary process support\\n\"\n \t       \"  --\"OPT_BASE_VIRTADDR\"     Base virtual address\\n\"\n+\t       \"  --\"OPT_TELEMETRY\"   Enable telemetry support (on by default)\\n\"\n+\t       \"  --\"OPT_NO_TELEMETRY\"   Disable telemetry support\\n\"\n \t       \"\\nEAL options for DEBUG use only:\\n\"\n \t       \"  --\"OPT_HUGE_UNLINK\"       Unlink hugepage files after init\\n\"\n \t       \"  --\"OPT_NO_HUGE\"           Use malloc instead of hugetlbfs\\n\"\ndiff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h\nindex a42f349232..c650bc0814 100644\n--- a/lib/librte_eal/common/eal_internal_cfg.h\n+++ b/lib/librte_eal/common/eal_internal_cfg.h\n@@ -82,6 +82,7 @@ struct internal_config {\n \trte_cpuset_t ctrl_cpuset;         /**< cpuset for ctrl threads */\n \tvolatile unsigned int init_complete;\n \t/**< indicates whether EAL has completed initialization */\n+\tunsigned int no_telemetry; /**< true to disable Telemetry */\n };\n extern struct internal_config internal_config; /**< Global EAL configuration. */\n \ndiff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h\nindex 9855429e58..225ad4bb59 100644\n--- a/lib/librte_eal/common/eal_options.h\n+++ b/lib/librte_eal/common/eal_options.h\n@@ -69,6 +69,10 @@ enum {\n \tOPT_IOVA_MODE_NUM,\n #define OPT_MATCH_ALLOCATIONS  \"match-allocations\"\n \tOPT_MATCH_ALLOCATIONS_NUM,\n+#define OPT_TELEMETRY         \"telemetry\"\n+\tOPT_TELEMETRY_NUM,\n+#define OPT_NO_TELEMETRY      \"no-telemetry\"\n+\tOPT_NO_TELEMETRY_NUM,\n \tOPT_LONG_MAX_NUM\n };\n \ndiff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile\nindex 2d53ce9eef..9ca7141cdb 100644\n--- a/lib/librte_eal/freebsd/Makefile\n+++ b/lib/librte_eal/freebsd/Makefile\n@@ -18,6 +18,7 @@ LDLIBS += -lexecinfo\n LDLIBS += -lpthread\n LDLIBS += -lgcc_s\n LDLIBS += -lrte_kvargs\n+LDLIBS += -lrte_telemetry\n \n EXPORT_MAP := ../rte_eal_version.map\n \ndiff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c\nindex 80dc9aa78c..73f9a15770 100644\n--- a/lib/librte_eal/freebsd/eal.c\n+++ b/lib/librte_eal/freebsd/eal.c\n@@ -44,6 +44,7 @@\n #include <rte_option.h>\n #include <rte_atomic.h>\n #include <malloc_heap.h>\n+#include <rte_telemetry.h>\n \n #include \"eal_private.h\"\n #include \"eal_thread.h\"\n@@ -952,6 +953,14 @@ rte_eal_init(int argc, char **argv)\n \t\trte_eal_init_alert(\"Cannot clear runtime directory\\n\");\n \t\treturn -1;\n \t}\n+\tif (!internal_config.no_telemetry) {\n+\t\tconst char *error_str;\n+\t\tif (rte_telemetry_init(rte_eal_get_runtime_dir(),\n+\t\t\t\t&error_str) != 0) {\n+\t\t\trte_eal_init_alert(error_str);\n+\t\t\treturn -1;\n+\t\t}\n+\t}\n \n \teal_mcfg_complete();\n \ndiff --git a/lib/librte_eal/freebsd/meson.build b/lib/librte_eal/freebsd/meson.build\nindex 22fc4e8074..e10fd8a16d 100644\n--- a/lib/librte_eal/freebsd/meson.build\n+++ b/lib/librte_eal/freebsd/meson.build\n@@ -18,4 +18,4 @@ sources += files(\n \t'eal_timer.c',\n )\n \n-deps += ['kvargs']\n+deps += ['kvargs', 'telemetry']\ndiff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile\nindex fc2316667a..9c3ccdf5bd 100644\n--- a/lib/librte_eal/linux/Makefile\n+++ b/lib/librte_eal/linux/Makefile\n@@ -19,6 +19,7 @@ LDLIBS += -lpthread\n LDLIBS += -lgcc_s\n LDLIBS += -lrt\n LDLIBS += -lrte_kvargs\n+LDLIBS += -lrte_telemetry\n ifeq ($(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),y)\n LDLIBS += -lnuma\n endif\ndiff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c\nindex d1e532fc1b..7c89389b9d 100644\n--- a/lib/librte_eal/linux/eal.c\n+++ b/lib/librte_eal/linux/eal.c\n@@ -51,6 +51,7 @@\n #include <malloc_heap.h>\n #include <rte_vfio.h>\n #include <rte_option.h>\n+#include <rte_telemetry.h>\n \n #include \"eal_private.h\"\n #include \"eal_thread.h\"\n@@ -1291,6 +1292,14 @@ rte_eal_init(int argc, char **argv)\n \t\trte_eal_init_alert(\"Cannot clear runtime directory\\n\");\n \t\treturn -1;\n \t}\n+\tif (!internal_config.no_telemetry) {\n+\t\tconst char *error_str;\n+\t\tif (rte_telemetry_init(rte_eal_get_runtime_dir(),\n+\t\t\t\t&error_str) != 0) {\n+\t\t\trte_eal_init_alert(error_str);\n+\t\t\treturn -1;\n+\t\t}\n+\t}\n \n \teal_mcfg_complete();\n \ndiff --git a/lib/librte_eal/linux/meson.build b/lib/librte_eal/linux/meson.build\nindex ca4f4e9785..7742aa4759 100644\n--- a/lib/librte_eal/linux/meson.build\n+++ b/lib/librte_eal/linux/meson.build\n@@ -21,7 +21,7 @@ sources += files(\n \t'eal_vfio_mp_sync.c',\n )\n \n-deps += ['kvargs']\n+deps += ['kvargs', 'telemetry']\n if has_libnuma == 1\n \tdpdk_conf.set10('RTE_EAL_NUMA_AWARE_HUGEPAGES', true)\n endif\ndiff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build\nindex 0267c3b9d8..e301f45585 100644\n--- a/lib/librte_eal/meson.build\n+++ b/lib/librte_eal/meson.build\n@@ -11,7 +11,10 @@ subdir(exec_env)\n \n subdir(arch_subdir)\n \n-deps += 'kvargs'\n+deps += ['kvargs']\n+if not is_windows\n+\tdeps += ['telemetry']\n+endif\n if dpdk_conf.has('RTE_USE_LIBBSD')\n \text_deps += libbsd\n endif\ndiff --git a/lib/librte_ethdev/Makefile b/lib/librte_ethdev/Makefile\nindex ab83d45acf..98714540ca 100644\n--- a/lib/librte_ethdev/Makefile\n+++ b/lib/librte_ethdev/Makefile\n@@ -11,7 +11,7 @@ LIB = librte_ethdev.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring\n-LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter\n+LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter -lrte_telemetry\n \n EXPORT_MAP := rte_ethdev_version.map\n \n@@ -23,10 +23,6 @@ SRCS-y += rte_tm.c\n SRCS-y += rte_mtr.c\n SRCS-y += ethdev_profile.c\n \n-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)\n-LDLIBS += -lrte_telemetry\n-endif\n-\n #\n # Export include files\n #\ndiff --git a/lib/librte_ethdev/meson.build b/lib/librte_ethdev/meson.build\nindex 0e9d3497a0..efbf6c88c9 100644\n--- a/lib/librte_ethdev/meson.build\n+++ b/lib/librte_ethdev/meson.build\n@@ -24,8 +24,4 @@ headers = files('rte_ethdev.h',\n \t'rte_tm.h',\n \t'rte_tm_driver.h')\n \n-deps += ['net', 'kvargs', 'meter']\n-\n-if dpdk_conf.has('RTE_LIBRTE_TELEMETRY')\n-\tdeps += ['telemetry']\n-endif\n+deps += ['net', 'kvargs', 'meter', 'telemetry']\ndiff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c\nindex fd63104e5d..b5546833a6 100644\n--- a/lib/librte_ethdev/rte_ethdev.c\n+++ b/lib/librte_ethdev/rte_ethdev.c\n@@ -38,9 +38,7 @@\n #include <rte_kvargs.h>\n #include <rte_class.h>\n #include <rte_ether.h>\n-#ifdef RTE_LIBRTE_TELEMETRY\n #include <rte_telemetry.h>\n-#endif\n \n #include \"rte_ethdev.h\"\n #include \"rte_ethdev_driver.h\"\n@@ -5192,7 +5190,6 @@ rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da)\n \treturn result;\n }\n \n-#ifdef RTE_LIBRTE_TELEMETRY\n static int\n handle_port_list(const char *cmd __rte_unused,\n \t\tconst char *params __rte_unused,\n@@ -5286,17 +5283,14 @@ handle_port_link_status(const char *cmd __rte_unused,\n \n \treturn ret >= buf_len ? -1 : ret;\n }\n-#endif\n \n RTE_INIT(ethdev_init_log)\n {\n \trte_eth_dev_logtype = rte_log_register(\"lib.ethdev\");\n \tif (rte_eth_dev_logtype >= 0)\n \t\trte_log_set_level(rte_eth_dev_logtype, RTE_LOG_INFO);\n-#ifdef RTE_LIBRTE_TELEMETRY\n \trte_telemetry_register_cmd(\"/ethdev/list\", handle_port_list);\n \trte_telemetry_register_cmd(\"/ethdev/xstats\", handle_port_xstats);\n \trte_telemetry_register_cmd(\"/ethdev/link_status\",\n \t\t\thandle_port_link_status);\n-#endif\n }\ndiff --git a/lib/librte_rawdev/Makefile b/lib/librte_rawdev/Makefile\nindex 5d7c2a582d..99f5d2a471 100644\n--- a/lib/librte_rawdev/Makefile\n+++ b/lib/librte_rawdev/Makefile\n@@ -9,11 +9,7 @@ LIB = librte_rawdev.a\n # build flags\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n-LDLIBS += -lrte_eal\n-\n-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)\n-LDLIBS += -lrte_telemetry\n-endif\n+LDLIBS += -lrte_eal -lrte_telemetry\n \n # library source files\n SRCS-y += rte_rawdev.c\ndiff --git a/lib/librte_rawdev/meson.build b/lib/librte_rawdev/meson.build\nindex 1f23d2a80c..30d363cd2d 100644\n--- a/lib/librte_rawdev/meson.build\n+++ b/lib/librte_rawdev/meson.build\n@@ -4,6 +4,4 @@\n sources = files('rte_rawdev.c')\n headers = files('rte_rawdev.h', 'rte_rawdev_pmd.h')\n \n-if dpdk_conf.has('RTE_LIBRTE_TELEMETRY')\n-\tdeps += ['telemetry']\n-endif\n+deps += ['telemetry']\ndiff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c\nindex 61fe29110c..df2311701d 100644\n--- a/lib/librte_rawdev/rte_rawdev.c\n+++ b/lib/librte_rawdev/rte_rawdev.c\n@@ -29,9 +29,7 @@\n #include <rte_common.h>\n #include <rte_malloc.h>\n #include <rte_errno.h>\n-#ifdef RTE_LIBRTE_TELEMETRY\n #include <rte_telemetry.h>\n-#endif\n \n #include \"rte_rawdev.h\"\n #include \"rte_rawdev_pmd.h\"\n@@ -547,7 +545,6 @@ rte_rawdev_pmd_release(struct rte_rawdev *rawdev)\n \treturn 0;\n }\n \n-#ifdef RTE_LIBRTE_TELEMETRY\n static int\n handle_dev_list(const char *cmd __rte_unused,\n \t\tconst char *params __rte_unused,\n@@ -619,15 +616,12 @@ handle_dev_xstats(const char *cmd __rte_unused,\n \tfree(rawdev_xstats);\n \treturn used;\n }\n-#endif\n \n RTE_INIT(librawdev_init_log)\n {\n \tlibrawdev_logtype = rte_log_register(\"lib.rawdev\");\n \tif (librawdev_logtype >= 0)\n \t\trte_log_set_level(librawdev_logtype, RTE_LOG_INFO);\n-#ifdef RTE_LIBRTE_TELEMETRY\n \trte_telemetry_register_cmd(\"/rawdev/list\", handle_dev_list);\n \trte_telemetry_register_cmd(\"/rawdev/xstats\", handle_dev_xstats);\n-#endif\n }\ndiff --git a/lib/librte_telemetry/Makefile b/lib/librte_telemetry/Makefile\nindex 4b78f2e856..941385f351 100644\n--- a/lib/librte_telemetry/Makefile\n+++ b/lib/librte_telemetry/Makefile\n@@ -13,17 +13,16 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include\n CFLAGS += -I$(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include\n CFLAGS += -pthread\n \n-LDLIBS += -lrte_eal\n LDLIBS += -lpthread\n \n EXPORT_MAP := rte_telemetry_version.map\n \n # library source files\n-SRCS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += telemetry.c\n-SRCS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += telemetry_legacy.c\n+SRCS-y += telemetry.c\n+SRCS-y += telemetry_legacy.c\n \n # export include files\n-SYMLINK-$(CONFIG_RTE_LIBRTE_TELEMETRY)-include := rte_telemetry.h\n-SYMLINK-$(CONFIG_RTE_LIBRTE_TELEMETRY)-include += rte_telemetry_json.h\n+SYMLINK-y-include := rte_telemetry.h\n+SYMLINK-y-include += rte_telemetry_json.h\n \n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/lib/librte_telemetry/meson.build b/lib/librte_telemetry/meson.build\nindex b914a67fa7..d807b40f5c 100644\n--- a/lib/librte_telemetry/meson.build\n+++ b/lib/librte_telemetry/meson.build\n@@ -6,4 +6,3 @@ includes = [global_inc]\n sources = files('telemetry.c', 'telemetry_legacy.c')\n headers = files('rte_telemetry.h', 'rte_telemetry_json.h')\n includes += include_directories('../librte_metrics')\n-dpdk_app_link_libraries += ['telemetry']\ndiff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h\nindex fafc889eba..9308d1cca2 100644\n--- a/lib/librte_telemetry/rte_telemetry.h\n+++ b/lib/librte_telemetry/rte_telemetry.h\n@@ -86,5 +86,6 @@ rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn);\n  */\n __rte_experimental\n int\n-rte_telemetry_init(void);\n+rte_telemetry_init(const char *runtime_dir, const char **err_str);\n+\n #endif\ndiff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c\nindex 6a52c91d70..aeaa5925c3 100644\n--- a/lib/librte_telemetry/telemetry.c\n+++ b/lib/librte_telemetry/telemetry.c\n@@ -14,7 +14,6 @@\n #include <rte_common.h>\n #include <rte_spinlock.h>\n #include <rte_version.h>\n-#include <rte_option.h>\n \n #include \"rte_telemetry.h\"\n #include \"rte_telemetry_legacy.h\"\n@@ -298,28 +297,16 @@ telemetry_v2_init(const char *runtime_dir)\n }\n \n int32_t\n-rte_telemetry_init(void)\n+rte_telemetry_init(const char *runtime_dir, const char **err_str)\n {\n-\tconst char *error_str;\n-\tif (telemetry_v2_init(rte_eal_get_runtime_dir()) != 0) {\n-\t\terror_str = telemetry_log_error;\n-\t\tprintf(\"Error initialising telemetry - %s\", error_str);\n+\tif (telemetry_v2_init(runtime_dir) != 0) {\n+\t\t*err_str = telemetry_log_error;\n+\t\tprintf(\"Error initialising telemetry - %s\", *err_str);\n \t\treturn -1;\n \t}\n-\tif (telemetry_legacy_init(rte_eal_get_runtime_dir()) != 0) {\n-\t\terror_str = telemetry_log_error;\n-\t\tprintf(\"No telemetry legacy support- %s\", error_str);\n+\tif (telemetry_legacy_init(runtime_dir) != 0) {\n+\t\t*err_str = telemetry_log_error;\n+\t\tprintf(\"No telemetry legacy support- %s\", *err_str);\n \t}\n \treturn 0;\n }\n-\n-static struct rte_option option = {\n-\t.name = \"telemetry\",\n-\t.usage = \"Enable telemetry backend\",\n-\t.cb = &rte_telemetry_init,\n-\t.enabled = 0\n-};\n-\n-RTE_INIT(telemetry_register_op) {\n-\trte_option_register(&option);\n-}\ndiff --git a/lib/meson.build b/lib/meson.build\nindex 85977a085e..7a10ccbafe 100644\n--- a/lib/meson.build\n+++ b/lib/meson.build\n@@ -10,8 +10,8 @@\n # core libs which are widely reused, so their deps are kept to a minimum.\n libraries = [\n \t'kvargs', # eal depends on kvargs\n+\t'telemetry', # basic info querying capability about dpdk processes\n \t'eal', # everything depends on eal\n-\t'telemetry',\n \t'ring', 'mempool', 'mbuf', 'net', 'meter', 'ethdev', 'pci', # core\n \t'cmdline',\n \t'metrics', # bitrate/latency stats depends on this\ndiff --git a/mk/rte.app.mk b/mk/rte.app.mk\nindex fdaf3ec2c0..76e8bc95f9 100644\n--- a/mk/rte.app.mk\n+++ b/mk/rte.app.mk\n@@ -52,6 +52,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_ACL)            += -lrte_acl\n _LDLIBS-$(CONFIG_RTE_LIBRTE_JOBSTATS)       += -lrte_jobstats\n _LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS)        += --whole-archive\n _LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS)        += -lrte_metrics\n+ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)\n+_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS)            += -ljansson\n+endif\n _LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS)        += --no-whole-archive\n _LDLIBS-$(CONFIG_RTE_LIBRTE_BITRATE)        += -lrte_bitratestats\n _LDLIBS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS)  += -lrte_latencystats\n@@ -74,6 +77,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_HASH)           += -lrte_hash\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER)         += -lrte_member\n _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST)          += -lrte_vhost\n _LDLIBS-$(CONFIG_RTE_LIBRTE_KVARGS)         += -lrte_kvargs\n+_LDLIBS-y                                   += -lrte_telemetry\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MBUF)           += -lrte_mbuf\n _LDLIBS-$(CONFIG_RTE_LIBRTE_NET)            += -lrte_net\n _LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER)          += -lrte_ethdev\n@@ -90,7 +94,6 @@ _LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING)   += -lrte_mempool_ring\n _LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += -lrte_mempool_octeontx2\n _LDLIBS-$(CONFIG_RTE_LIBRTE_RING)           += -lrte_ring\n _LDLIBS-$(CONFIG_RTE_LIBRTE_PCI)            += -lrte_pci\n-_LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY)      += -lrte_telemetry -ljansson\n _LDLIBS-$(CONFIG_RTE_LIBRTE_EAL)            += -lrte_eal\n _LDLIBS-$(CONFIG_RTE_LIBRTE_CMDLINE)        += -lrte_cmdline\n _LDLIBS-$(CONFIG_RTE_LIBRTE_REORDER)        += -lrte_reorder\n",
    "prefixes": [
        "v3",
        "14/17"
    ]
}