eal: limit telemetry to primary processes
authorBruce Richardson <bruce.richardson@intel.com>
Thu, 14 Oct 2021 10:49:04 +0000 (11:49 +0100)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 14 Oct 2021 18:31:10 +0000 (20:31 +0200)
Telemetry interface should be exposed for primary processes only, since
secondary processes will conflict on socket creation, and since all
data in secondary process is generally available to primary. For
example, all device stats for ethdevs, cryptodevs, etc. will all be
common across processes.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
lib/eal/freebsd/eal.c
lib/eal/linux/eal.c

index fb734012a4693cb4e728188f3ee43d11df5673b2..56a60f13e90e76689ff7046cc870a1068e515577 100644 (file)
@@ -950,7 +950,7 @@ rte_eal_init(int argc, char **argv)
                rte_eal_init_alert("Cannot clear runtime directory");
                return -1;
        }
-       if (!internal_conf->no_telemetry) {
+       if (rte_eal_process_type() == RTE_PROC_PRIMARY && !internal_conf->no_telemetry) {
                int tlog = rte_log_register_type_and_pick_level(
                                "lib.telemetry", RTE_LOG_WARNING);
                if (tlog < 0)
index 3577eaeaa4f47794ede24ab552e04364b48eb88d..0d0fc66668a9e2b098b174a724c00d451d679fa9 100644 (file)
@@ -1320,7 +1320,7 @@ rte_eal_init(int argc, char **argv)
                rte_eal_init_alert("Cannot clear runtime directory");
                return -1;
        }
-       if (!internal_conf->no_telemetry) {
+       if (rte_eal_process_type() == RTE_PROC_PRIMARY && !internal_conf->no_telemetry) {
                int tlog = rte_log_register_type_and_pick_level(
                                "lib.telemetry", RTE_LOG_WARNING);
                if (tlog < 0)