build: make metrics libraries optional

metrics, bitratestats, jobstats and latencystats libraries can be made
optional as they provide standalone features.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
David Marchand 2021-11-17 12:28:45 +01:00 committed by Thomas Monjalon
parent 6970401e97
commit bb9be9a45e
6 changed files with 47 additions and 11 deletions

View File

@ -29,7 +29,9 @@
#include <rte_log.h>
#include <rte_branch_prediction.h>
#include <rte_string_fns.h>
#ifdef RTE_LIB_METRICS
#include <rte_metrics.h>
#endif
#include <rte_cycles.h>
#ifdef RTE_LIB_SECURITY
#include <rte_security.h>
@ -58,8 +60,10 @@ static uint32_t enable_collectd_format;
static int stdout_fd;
/**< Host id process is running on */
static char host_id[MAX_LONG_OPT_SZ];
#ifdef RTE_LIB_METRICS
/**< Enable metrics. */
static uint32_t enable_metrics;
#endif
/**< Enable stats reset. */
static uint32_t reset_stats;
/**< Enable xstats reset. */
@ -107,8 +111,10 @@ proc_info_usage(const char *prgname)
" --stats: to display port statistics, enabled by default\n"
" --xstats: to display extended port statistics, disabled by "
"default\n"
#ifdef RTE_LIB_METRICS
" --metrics: to display derived metrics of the ports, disabled by "
"default\n"
#endif
" --xstats-name NAME: to display single xstat id by NAME\n"
" --xstats-ids IDLIST: to display xstat values by id. "
"The argument is comma-separated list of xstat ids to print out.\n"
@ -217,7 +223,9 @@ proc_info_parse_args(int argc, char **argv)
{"stats", 0, NULL, 0},
{"stats-reset", 0, NULL, 0},
{"xstats", 0, NULL, 0},
#ifdef RTE_LIB_METRICS
{"metrics", 0, NULL, 0},
#endif
{"xstats-reset", 0, NULL, 0},
{"xstats-name", required_argument, NULL, 1},
{"collectd-format", 0, NULL, 0},
@ -259,10 +267,12 @@ proc_info_parse_args(int argc, char **argv)
else if (!strncmp(long_option[option_index].name, "xstats",
MAX_LONG_OPT_SZ))
enable_xstats = 1;
#ifdef RTE_LIB_METRICS
else if (!strncmp(long_option[option_index].name,
"metrics",
MAX_LONG_OPT_SZ))
enable_metrics = 1;
#endif
/* Reset stats */
if (!strncmp(long_option[option_index].name, "stats-reset",
MAX_LONG_OPT_SZ))
@ -592,6 +602,7 @@ nic_xstats_clear(uint16_t port_id)
printf("\n NIC extended statistics for port %d cleared\n", port_id);
}
#ifdef RTE_LIB_METRICS
static void
metrics_display(int port_id)
{
@ -652,6 +663,7 @@ metrics_display(int port_id)
rte_free(metrics);
rte_free(names);
}
#endif
static void
show_security_context(uint16_t portid, bool inline_offload)
@ -1521,14 +1533,18 @@ main(int argc, char **argv)
else if (nb_xstats_ids > 0)
nic_xstats_by_ids_display(i, xstats_ids,
nb_xstats_ids);
#ifdef RTE_LIB_METRICS
else if (enable_metrics)
metrics_display(i);
#endif
}
#ifdef RTE_LIB_METRICS
/* print port independent stats */
if (enable_metrics)
metrics_display(RTE_METRICS_GLOBAL);
#endif
/* show information for PMD */
if (enable_shw_port)

View File

@ -8,4 +8,7 @@ if is_windows
endif
sources = files('main.c')
deps += ['ethdev', 'metrics', 'security']
deps += ['ethdev', 'security']
if dpdk_conf.has('RTE_LIB_METRICS')
deps += 'metrics'
endif

View File

@ -32,7 +32,7 @@ if dpdk_conf.has('RTE_HAS_JANSSON')
ext_deps += jansson_dep
endif
deps += ['ethdev', 'cmdline', 'metrics', 'bus_pci']
deps += ['ethdev', 'cmdline', 'bus_pci']
if dpdk_conf.has('RTE_CRYPTO_SCHEDULER')
deps += 'crypto_scheduler'
endif
@ -52,6 +52,9 @@ endif
if dpdk_conf.has('RTE_LIB_LATENCYSTATS')
deps += 'latencystats'
endif
if dpdk_conf.has('RTE_LIB_METRICS')
deps += 'metrics'
endif
if dpdk_conf.has('RTE_LIB_PDUMP')
deps += 'pdump'
endif

View File

@ -54,7 +54,9 @@
#include <rte_pdump.h>
#endif
#include <rte_flow.h>
#ifdef RTE_LIB_METRICS
#include <rte_metrics.h>
#endif
#ifdef RTE_LIB_BITRATESTATS
#include <rte_bitrate.h>
#endif
@ -4242,8 +4244,10 @@ main(int argc, char** argv)
port_id, rte_strerror(-ret));
}
#ifdef RTE_LIB_METRICS
/* Init metrics library */
rte_metrics_init(rte_socket_id());
#endif
#ifdef RTE_LIB_LATENCYSTATS
if (latencystats_enabled != 0) {

View File

@ -98,7 +98,6 @@ test_sources = files(
'test_mempool_perf.c',
'test_memzone.c',
'test_meter.c',
'test_metrics.c',
'test_mcslock.c',
'test_mp_secondary.c',
'test_per_lcore.c',
@ -162,7 +161,6 @@ test_deps = [
'acl',
'bus_pci',
'bus_vdev',
'bitratestats',
'bpf',
'cfgfile',
'cmdline',
@ -177,10 +175,8 @@ test_deps = [
'graph',
'hash',
'ipsec',
'latencystats',
'lpm',
'member',
'metrics',
'node',
'pipeline',
'port',
@ -280,7 +276,6 @@ fast_tests = [
['kni_autotest', false],
['kvargs_autotest', true],
['member_autotest', true],
['metrics_autotest', true],
['power_cpufreq_autotest', false],
['power_autotest', true],
['power_kvm_vm_autotest', false],
@ -385,6 +380,11 @@ endif
if dpdk_conf.has('RTE_EVENT_SKELETON')
test_deps += 'event_skeleton'
endif
if dpdk_conf.has('RTE_LIB_METRICS')
test_deps += 'metrics'
test_sources += ['test_metrics.c']
fast_tests += [['metrics_autotest', true]]
endif
if dpdk_conf.has('RTE_LIB_TELEMETRY')
test_sources += ['test_telemetry_json.c', 'test_telemetry_data.c']
fast_tests += [['telemetry_json_autotest', true], ['telemetry_data_autotest', true]]
@ -406,16 +406,22 @@ if dpdk_conf.has('RTE_NET_RING')
test_sources += 'test_pmd_ring_perf.c'
test_sources += 'test_pmd_ring.c'
test_sources += 'test_event_eth_tx_adapter.c'
test_sources += 'test_bitratestats.c'
test_sources += 'test_latencystats.c'
test_sources += 'sample_packet_forward.c'
test_sources += 'test_pdump.c'
fast_tests += [['ring_pmd_autotest', true]]
perf_test_names += 'ring_pmd_perf_autotest'
fast_tests += [['event_eth_tx_adapter_autotest', false]]
fast_tests += [['bitratestats_autotest', true]]
fast_tests += [['latencystats_autotest', true]]
fast_tests += [['pdump_autotest', true]]
if dpdk_conf.has('RTE_LIB_BITRATESTATS')
test_deps += 'bitratestats'
test_sources += 'test_bitratestats.c'
fast_tests += [['bitratestats_autotest', true]]
endif
if dpdk_conf.has('RTE_LIB_LATENCYSTATS')
test_deps += 'latencystats'
test_sources += 'test_latencystats.c'
fast_tests += [['latencystats_autotest', true]]
endif
endif
if dpdk_conf.has('RTE_HAS_LIBPCAP')

View File

@ -66,9 +66,13 @@ libraries = [
]
optional_libs = [
'bitratestats',
'gro',
'gso',
'kni',
'jobstats',
'latencystats',
'metrics',
'power',
'vhost',
]